当前位置: 代码迷 >> C语言 >> [求助]请看看 这个程序错在那里
  详细解决方案

[求助]请看看 这个程序错在那里

热度:117   发布时间:2006-01-21 13:08:00.0
[求助]请看看 这个程序错在那里
/*求一个3行4列的矩阵里最大的元素*/
main()
{int a[3][4],x,y,max[3],max1;
for(x=0;x<=2;x++)
for(y=0;y<=3;y++)
scanf("%d,%d",&a[x][y]);
for(x=0;x<=2;x++)
for(y=0;y<=3;y++)
{if(a[x][y]<a[x][y+1])
max[x]=a[x][y+1];
else max[x]=a[x][y];
}
for(x=0;x<=2;x++)
{if(max[x]<max[x+1])
max1=max[x+1];
else max1=max[x];
}
printf("%d",max1);
getch();
}
搜索更多相关的解决方案: 矩阵  最大的  元素  

----------------解决方案--------------------------------------------------------

getch()后面的分号是中文的,改成英文之后编译通过


----------------解决方案--------------------------------------------------------
[分享]
哦,那是我传到网上的时候弄错了的,我的意思是想让各位看看我的算法是不是出现了错误,因为在运行是结果不正确,谢谢!
----------------解决方案--------------------------------------------------------

参考下这个:有一个3×4的矩阵,要求编程序以求出其中值最大的那个元素的值及其所在的行号和列号。

#include <stdio.h>
void main ()
{
int i,j,row=0,colum=0,max;
static int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max = a[0][0];
for(i=0; i<=2; i++)
for(j=0; j<=3; j++)
if (a[i][j] > max )
{ max = a[i][j];
row = i;
colum = j;
}
printf("max=%d, row=%d, colum=%d\n",max,row,colum);
}


----------------解决方案--------------------------------------------------------
楼主的逻辑不好啊,
for(x=0;x<=2;x++)
for(y=0;y<=3;y++)
{if(a[x][y]<a[x][y+1])
max[x]=a[x][y+1];
else max[x]=a[x][y];
这样会产生数组越位的吧

----------------解决方案--------------------------------------------------------
以下是引用zushuboderen在2006-1-21 19:49:00的发言:
楼主的逻辑不好啊,
for(x=0;x<=2;x++)
for(y=0;y<=3;y++)
{if(a[x][y]<a[x][y+1])
max[x]=a[x][y+1];
else max[x]=a[x][y];
这样会产生数组越位的吧

没错,当Y=3时,a[x][y+1]出错
----------------解决方案--------------------------------------------------------

谢谢各位给我的宝贵意见,我还会仔细研读一下的,我不太明白,为什么会产生数组越位呢,能解释一下吗?


----------------解决方案--------------------------------------------------------
当y=3的时候,a[x][3+1] = a[x][4]
而你的数组a是规定为a[3][4]的,意思也就是 a[0~2][0~3]
现在你的a[x][4] 4很明显就超过了0~3这个范围,所以说你有数组越位

----------------解决方案--------------------------------------------------------

哦,谢谢了,我调整一下啊,还有其它问题吗?


----------------解决方案--------------------------------------------------------
这个应该是你来发现的啊
你认为你在用的时候有什么不对呢?自己再想想为什么,然后再问问看看是不是想的和大家说的一样

----------------解决方案--------------------------------------------------------
  相关解决方案