编写程序二并运行:求一个4×4矩阵两条对角线上所有元素之和。
#include<stdio.h>
int main()
{
ints,a[4][4],i=0,j=0;
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i=j)
s=s+a[i][j];
if(i+j==3)
s=s+a[i][j];
printf("%d\n",s);
return 0;
}
请问错在哪里 展开
提供的代码主要以以下两点错误:
1、如果要采用赋值的方式去初始化4*4的矩阵,需要在两层for循环中写入scanf语句,而不是单独一行写“scanf("%d",&a[i][j]);”这样只会录入一个元素。
2、if(i=j)错误,应该为“==”。在c语言的编写中最好使用{}来调理层次关系。
修改后的代码如下:
#include<stdio.h>
int main()
{
int s,a[4][4],i=0,j=0;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(i==j)
s=s+a[i][j];
if(i+j==3)
s=s+a[i][j];
}
}
printf("%d\n",s);
return 0;
}
运行结果如下图所示
拓展资料
C语言循环控制语句的使用与对比
同一个问题,往往既可以用 while语句解决,也可以用 do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:
(1) 如果循环次数在执行循环体之前就已确定,一般用 for语句。如果循环次数是由循环体的执行情况确定的,一般用 while语句或者do- while语句。
(2) 当循环体至少执行一次时,用 do-while语句,反之,如果循环体可能一次也不执行,则选用while语句。
C++/C循环语句中,for语句使用频率最高,while语句其次,do语句很少用。
三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。
参考资料来源:百度百科-C语言循环控制语句
scanf是什么意思,取地址是取我们输入的数字吗?不好意思,我是新手,所以才要来问问
#include<stdio.h>
int main()
{
int s=0,a[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++){
scanf("%d",&a[i][j]);
if(i==j)
s=s+a[i][j];
if(i+j==3)
s=s+a[i][j];
}
printf("%d\n",s);
return 0;
}