用c++编3x4的矩阵 ,求出其中值最大的那个元素的值及其在的行号和列号的问题,源程序如下,求高手,哪里错

#include <stdio.h>
main()
{
int a[4][5],i,j,r,c;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
scanf("%d",&a[i][j]);
for(i=1,a[0][0]=a[1][1];i<=3;i++)
for(j=1;j<=4;j++)
if(a[i][j]>a[0][0])
{a[0][0]=a[i][j];c=i-1;r=j-1;}
printf("%d,%d,%d\n",a[0][0],c,r);
}

第1个回答  2011-05-26
错误有三个:
1.C++虽然兼容C,但是头文件还是需要用“#include <iostream>”和“using namespace”,要学C++就要学标准的C++,不要学的四不像;

2.主函数要有返回值,C中支持void型,不过标准的C++要求主函数必须为int型返回值,并且在主函数返回0表示程序正常结束。

3.要3*4的矩阵,定义二维数组的时候定义34的下标就可以了。

你的代码要跑起来只需要在main前面加上void就可以了,不过这是C代码,不是C++代码
第2个回答  2011-05-26
#include <stdio.h>
void main()
{
int a[4][5],i,j,r,c;
for(i=1;i<=3;i++)
for(j=1;j<=4;j++) //3改4!3改4!3改4!3改4!
scanf("%d",&a[i][j]);
for(i=1,a[0][0]=a[1][1];i<=3;i++)
for(j=1;j<=4;j++)
if(a[i][j]>a[0][0])
{a[0][0]=a[i][j];c=i;r=j;} //不用减1了!不用减1了!
printf("max=%d,row=%d,col=%d\n",a[0][0],c,r);
}本回答被提问者采纳
第3个回答  2011-05-26
#include <stdio.h>
int main(void)
{
int a[4][5],i,j,r,c;
for(i=0;i<4;i++) 下标是从0开始
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0,a[0][0]=a[1][1];i<4;i++)
for(j=0;j<5;j++)
if(a[i][j]>a[0][0])
{a[0][0]=a[i][j];c=i;r=j;} 不用减1
printf("%d,%d,%d\n",a[c][r],c,r);
}
相似回答