c语言函数调用问题 (回答好追加100分)

根据要求编写程序P5031.C的指定部分:程序P5031.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修... 根据要求编写程序P5031.C的指定部分:
  程序P5031.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。
  程序的功能是:找出任意的一个m×n矩阵每一行上的最大值的列下标并按示例格式要求显示。m、n(2<=m<=20、2<=n<=20)及矩阵元素从键盘输入。编程可用素材:printf("The max value in line %d is %d\n"...。
  程序的运行效果应类似地如图1所示,图1中的5 6和
    31 42 36 74 2358 88
    32 57 37 43 47 1447
    97 51 257 7 445 459
    33 65 44 3 425 43
    68 3425 82 789 123 2134
  是从键盘输入的内容。
#include <stdio.h>

#define N 20

/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */

/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

int main(void)
{
int m, n;
int hang, lie, juZhen[N][N];

printf("Please input m and n:");
scanf("%d%d", &m, &n);

printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
for (hang = 0; hang < m; hang++)
{
for (lie = 0; lie < n; lie++)
{
scanf("%d", &juZhen[hang][lie]);
}
}
puts("");

/* 本部分代码功能建议:调用用户自定义函数找出每一行上的最大值的列下标并按示例格式要求显示 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */

/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

return 0;
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限) */
展开
 我来答
yangzhe2291
2011-11-23 · TA获得超过691个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:468万
展开全部
#include <stdio.h>

#define N 20

/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
void fun(int juZhen[N][N],int m,int n);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

int main(void)
{
int m, n;
int hang, lie, juZhen[N][N];

printf("Please input m and n:");
scanf("%d%d", &m, &n);

printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
for (hang = 0; hang < m; hang++)
{
for (lie = 0; lie < n; lie++)
{
scanf("%d", &juZhen[hang][lie]);
}
}
puts("");

/* 本部分代码功能建议:调用用户自定义函数找出每一行上的最大值的列下标并按示例格式要求显示 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
fun(juZhen,m,n);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

return 0;
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限) */
void fun(int juZhen[N][N],int m,int n)
{
int i,j,max=juZhen[0][0],maxi=0;
for(i=0;i<m;i++)
{
max=juZhen[i][0];
maxi=0;
for(j=1;j<n;j++)
{
if(juZhen[i][j]>max)
{
max=juZhen[i][j];
maxi=j;
}

}
printf("The max value in line %d is %d\n",i,maxi);
}
}

结果验证:
31 42 36 74 2358 88
32 57 37 43 47 1447
97 51 257 7 445 459
33 65 44 3 425 43
68 3425 82 789 123 2134

The max value in line 0 is 4
The max value in line 1 is 5
The max value in line 2 is 5
The max value in line 3 is 4
The max value in line 4 is 1

请hehefaq指出,“当一行中的最大值是第一个数的时候 程序会出错”,错在哪?
7777 42 36 74 2358 88
9999 57 37 43 47 1447
2222 51 257 7 445 459
3698 65 44 3 425 43
8000 3425 82 789 123 2134

The max value in line 0 is 0
The max value in line 1 is 0
The max value in line 2 is 0
The max value in line 3 is 0
The max value in line 4 is 0
sun_siliang
2011-11-23 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4490万
展开全部
#include <stdio.h>

#define N 20

/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */

/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
void fun(int a[][N],int m,int n);
int main(void)
{
int m, n;
int hang, lie, juZhen[N][N];

printf("Please input m and n:");
scanf("%d%d", &m, &n);

printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
for (hang = 0; hang < m; hang++)
{
for (lie = 0; lie < n; lie++)
{
scanf("%d", &juZhen[hang][lie]);
}
}
puts("");

/* 本部分代码功能建议:调用用户自定义函数找出每一行上的最大值的列下标并按示例格式要求显示 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */

/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
fun(juZhen,m,n);
return 0;
}
void fun(int a[][N],int m,int n)
{
int i,j,max;
for(i=0;i<m;i++)
{
max=0;
for(j=1;j<n;j++)
if(a[i][max]<a[i][j]) max=j;
printf("The max value in line %d is %d\n",i,max);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
furious_tauren
2011-11-23 · TA获得超过4053个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:743万
展开全部
#include <stdio.h>

#define N 20

/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
void ABC(int a[N][N], int m, int n);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

int main(void)
{
int m, n;
int hang, lie, juZhen[N][N];

printf("Please input m and n:");
scanf("%d%d", &m, &n);

printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
for (hang = 0; hang < m; hang++)
{
for (lie = 0; lie < n; lie++)
{
scanf("%d", &juZhen[hang][lie]);
}
}
puts("");

/* 本部分代码功能建议:调用用户自定义函数找出每一行上的最大值的列下标并按示例格式要求显示 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
ABC(juZhen, m, n);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

return 0;
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限) */
void ABC(int a[N][N], int m, int n)
{
int hang, lie, max;
for (hang = 0; hang < m; hang++)
{
max = a[hang][0];
for (lie = 1; lie < n; lie++)
{
if (max < a[hang][lie]) max = a[hang][lie];
}
printf("The max value in line %d is %d\n", hang, max);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左路传中
2011-11-23 · TA获得超过519个赞
知道小有建树答主
回答量:760
采纳率:0%
帮助的人:529万
展开全部
#include <stdio.h>

#define N 20

/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
int findmax(int **JuZhen,int m,int n);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

int main(void)
{
int m, n;
int hang, lie, juZhen[N][N];

printf("Please input m and n:");
scanf("%d%d", &m, &n);

printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
for (hang = 0; hang < m; hang++)
{
for (lie = 0; lie < n; lie++)
{
scanf("%d", &juZhen[hang][lie]);
}
}
puts("");

/* 本部分代码功能建议:调用用户自定义函数找出每一行上的最大值的列下标并按示例格式要求显示 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
findmax(juZhen,m,n);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

return 0;
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限) */
int findmax(int **JuZhen,int m,int n)
{
int i,j,max,index;
for(i=0;i<m;i++){
max=juZhen[i][0];
index=0;
for(j=1;j<n;j++){
if(juZhen[i][j]>max) index=j;
}
printf("The max value in line %d is %d\n",i,index);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hehefaq
2011-11-23 · TA获得超过457个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:380万
展开全部
4楼答案正解
前三楼的答案都存在相同的缺陷
当一行中的最大值是第一个数的时候 程序会出错
4L 高手 膜拜下 哇咔咔
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式