帮我看看这个C语言代码是否正确? 怎么执行!谢谢

来源:百度知道 编辑:UC知道 时间:2024/07/06 15:20:41
题目是:从键盘输入3个矩阵,输出3个矩阵主对角线的和及乘积。。。。。

#include <stdio.h>
#define N 2
int main()
{
int a[N][N];
int sum, pro;
int i, j, k;
for(i = 0; i < 3; i++)
{
sum = 0;
pro = 1;
for(j = 0; j < N; j++)
for(k = 0; k < N; k++)
{scanf("%d",&a[j][k]);
if(j == k)
{sum += a[j][k];pro *= a[j][k];}
}
printf("sum = %d, product = %d\n", sum, pro);

}
}

如果要计算矩阵 1 2 3
4 5 6
7 8 9 应该怎么输入这些数字

#define N 2
这个只能存放一个2*2的矩阵,
输入为:
1(回车)
2(回车)
3(回车)
4(回车)

如果改为#define N 3
这样才能计算矩阵
1 2 3
4 5 6
7 8 9
输入为:
1(回车)
2(回车)
3(回车)
4(回车)
...
9(回车)

#define N 3

#include <stdio.h>
#define N 2
int main()
{
int a[N][N];
int sum, pro;
int i, j, k;
for(i = 0; i < 3; i++)
/*这个循环是干嘛的啊,难道你是想求3次,那样的话最好用旗标*/
{
sum = 0;
pro = 1;
for(j = 0; j < N; j++)
for(k = 0; k < N; k++)
{scanf("%d",&a[j][k]);
if(j == k)
{sum += a[j][k];pro *= a[j][k];}
}
printf("sum = %d, product = %d\n", sum, pro);

}
}

假如你要输出3行3列的矩阵应把N改为3
然后每输入一个数按一下回车接着输入下一个数即可

c++下用
for(int i=0;i<10;i++)cin>>a[i];
就可以了,把“cin>>”改成你的getchar吧,我熟悉c++,不太熟悉c
^v^