C语言二维数组

#include "stdio.h"
void main()
{
int a[3][4];
int i,j;
int max=0;
printf("请输入数字,空格隔开:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
max=a[i][0];
if(max<a[i][j])
max=a[i][j];
printf("\t最大的数是:%d\n",max);
}
}
/*
请输入数字,空格隔开:
1 2 3 4 5 6 7 8 9 0 1 2
1 2 3 4 最大的数是:5
5 6 7 8 最大的数是:9
9 0 1 2 最大的数是:1245064

*/
哪里出问题了?

#include "stdio.h"

void main()

{

 int a[3][4];

 int i,j;

 int max=0;

printf("请输入数字,空格隔开:\n");

 for(i=0;i<3;i++)

 for(j=0;j<4;j++)

 scanf("%d",&a[i][j]); 

for(i=0;i<3;i++)

 {

 max=a[i][0];

 for(j=0;j<4;j++)

 {

 printf("%d ",a[i][j]); 

 if(max<a[i][j])

     max=a[i][j];}

 }

 printf("\t最大的数是:%d\n",max);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-21
printf("%d ",a[i][j]);
max=a[i][0];
if(max<a[i][j])
max=a[i][j];
这一部分一概全部放在for(j=0;j<4;j++)循环里面。
修改后:
#include "stdio.h"
void main() {
int a[3][4];
int i,j;
int max=0;
printf("请输入数字,空格隔开:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++) {
for(j=0;j<4;j++) {
printf("%d ",a[i][j]);
max=a[i][0];
if(max<a[i][j])
max=a[i][j];
}
printf("第%d行最大的数是:%d\n",i,max);
}
}本回答被提问者采纳
第2个回答  2012-12-21
for循环修改:
for(i=0;i<3;i++)
{
max=a[i][0]; // 楼下两位这句放下面for里了,碰巧答案对了,其实不对。
for(j=0;j<4;j++)
{
printf("%d ",a[i][j]);
if(max<a[i][j])
max=a[i][j];}
}
printf("\t最大的数是:%d\n",max);
}
相似回答