# include <stdio.h>
void main()
{int a[3][4],x,y,max[3]={0},max1=0;
for(x=0;x<=2;x++)
for(y=0;y<=3;y++)
scanf("%d",&a[x][y]);
puts ("\n");
for(x=0;x<=2;x++)
for(y=0;y<=2;y++)
{if(a[x][y]<a[x][y+1])
{
if (max[x]<a[x][y+1])
max[x]=a[x][y+1];
}
else if (max[x]<a[x][y])
max [x]=a[x][y];
printf ("%5d",max[x]);
}
for (x=0;x<3;x++)
printf ("%d",max[x]);
for(x=0;x<=1;x++)
{if(max[x]<max[x+1])
{if (max1<max[x+1])
max1=max[x+1];}
else
if (max1<max[x])
max1=max[x];
printf ("%5d",max1);
}
puts ("'\n'");
printf("the max number is %d\n",max1);
}
你原来的程序比较的时候是这样的:
例如输入5 2 3 4
5比2大 ,则max[x]=5,然后又到了2与3比,再把3的值赋给了max[x].
这样就把5没有了。。接着的就自己想。
还有你的算法太麻烦了,我建议你再想另外一种。
可以参考以下我修改你的:
# include <stdio.h>
void main()
{int a[3][4],x,y,max=0;
for(x=0;x<=2;x++)
for(y=0;y<=3;y++)
scanf("%d",&a[x][y]);
puts ("\n");
for(x=0;x<=2;x++)
for(y=0;y<=2;y++)
{
if (max<a[x][y])
max=a[x][y];
}
printf ("the max number is %d\n",max);
}
加油啊
喜欢宁静的平凡生活