c语言程序设计改错题

#defineM3#defineN4main(){intmax,i,j,r,c;staticinta[M][]={{123,94,-10,218},{3,9,10,-83... #define M 3
#define N 4
main( )
{int max,i,j,r,c;
static int a[M][ ]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0,0];
for(i=0;i<n;i++)
for(j=0;j<m;i++)
if ( a[i][j]>max)
{max= a[i][j];
r=i;
c=j;
}
printf(“max=%d ,row=%d,colum=%d\n”,max,r,c);
}
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号
展开
 我来答
yangliwei100
2009-05-13 · TA获得超过2258个赞
知道小有建树答主
回答量:2216
采纳率:50%
帮助的人:725万
展开全部
错误一:static int a[M][]={{}} 的赋值格式错误,应该是a[][n]其中n为已知。否则就要采起动态输入了。这可以改为a[][N].
错误二:max=a[0,0]类似一的错误,二维数组格式为a[][].
错误三:在二重循环当中用到的m,n两个小写字母的变量为不明变量。你前面define的只是大写的,下面小写的当然认不到。
错误四:主函数没有反回值。即是在最后没有return ().
错误五:二重循环中第一重循环for(j=0;j<M;i++)要改为j++。。这个没问题吧?
错误六:二重循环的顺序颠倒了。将循环中M和N的位置对换。

另外要输出的是行数和例数,所以输出的r和c应该加1,在数组他们是以0起始的,而实际应该从1起始对吧?
改正后代码如下:
#define M 3
#define N 4
main()
{int max,i,j,r,c;
static int a[][4]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0][0];
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if (a[i][j]>max)
{max= a[i][j];
r=i;
c=j;
}
printf("max=%d ,row=%d,colum=%d \n",max,r+1,c+1);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式