C++如何修改可以求3×3矩阵主对角线的两条对角线的和

help!求3*3整型矩阵对角线元素之和。。。下面的代码能编译和连接,但却不能被执行,为什么???#include &stdio.h&void main (){ int a,b,c,d,e,f,g,h,i,x,y; int m[3][3]={{a,b,c},{d,e,f},{g,h,i}}; scanf (&%d,%d,%d,%d,%d,%d,%d,%d,%d&,a,b,c,d,e,f,g,h,i); x=a+e+i; y=c+e+g; printf (&x=%d,y=%d\n&,x,y);}
回答1:你那abc是变量。使用二重循环for(int i=0;i&3;i++)for(int j=0;i&3;j++) scanf (&%d&,&m[i][j]);
回答2:scanf (&%d,%d,%d,%d,%d,%d,%d,%d,%d&,a,b,c,d,e,f,g,h,i);这个不对要&a,&b...&iint m[3][3]={{a,b,c},{d,e,f},{g,h,i}};要放在scanf后边x=a+e+i;y=c+e+g;应该是x=m[0][0]+m[1][1]+m[2][2];y=m[2][0]+m[1][1]+m[0][2];
回答3:  C/C++ code  #include &stdio.h&
void main ()
int i,j,x,y;
int m[3][3];
for(i = 0; i & 3; ++i)
for(j = 0; j & 3; ++j)
scanf(&%d&, &m[i][j]);
x=m[0][0]+m[1][1]+m[2][2];
y=m[0][2]+m[1][1]+m[2][0];
printf (&x=%d,y=%d\n&,x,y);
回答4:“数组初始化”和“数组赋值”不是一回事!
wukexianliang
回答5:我5楼的代码,哪里不对,对的啊探讨的确不是一回事,现在我就是赋值这块模糊,3楼推荐用2重循环,5楼的代码执行时不对,能给个使用2重循环赋值的例子吗?引用:“数组初始化”和“数组赋值”不是一回事!
wukeyong22
回答7:  C/C++ code  #include &stdio.h&
void main ()
int i,j,x,y;
int m[3][3];
for(i = 0; i & 3; ++i)
for(j = 0; j & 3; ++j)
scanf(&%d&, &m[i][j]);//给数组元素赋值
x=m[0][0]+m[1][1]+m[2][2];//x=a+e+i;
y=m[0][2]+m[1][1]+m[2][0];//y=c+e+g;
printf (&x=%d,y=%d\n&,x,y);

我要回帖

更多关于 矩阵第k条对角线 的文章

 

随机推荐