C语言,从键盘为一个3*3整形数组输入数据,并找出主对角线上元素的最大值及其所在行号。

求解,急,要源代码

思路:键盘输入3*3的二维数组a,接着假设a[0][0]就是最大值,再把a[0][0]与a[1][1]和a[2][2]比较最后输出最大值和最大值行号。

参考代码:

#include<stdio.h>
#define n 3
int main()
 {
  int a[n][n],i,j,max,maxi;
  for(i=0;i<n;i++)//键盘输入 
  for(j=0;j<n;j++)
  scanf("%d",&a[i][j]); 
  max=a[0][0];
  maxi=0;
for(i=1;i<n;i++)//遍历判断 
if(max<a[i][i]) {
max=a[i][i];
maxi=i;
}
printf("最大值为%d,最大值行号为%d.\n",max,maxi);
return 0;
 }
/*
1 2 3
4 6 5
7 9 2
最大值为6,最大值行号为1.
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-09
#include<stdio.h>
void main()
{
int a[3][3],i,j,max;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<3;j++)
printf("%-5d",a[i][j]);
}
printf("\n");
max=a[0][0];
for(i=0;i<3;i++)
{
if(a[i][i]>max)
max=a[i][i];
}
printf("%d\n%d",max,i);
getch();
}追问

貌似有错诶,VC6.0运行出错,应该是getchar()才对。

追答

我用win-TC编译的,所以要加getch(),编译通过可以运行

追问

哦哦。我用的都是VC++6.0

本回答被网友采纳