编写程序二并运行:求一个4×4矩阵两条对角线上所有元素之和。

编写程序二并运行:求一个4×4矩阵两条对角线上所有元素之和。 说明: 4×4矩阵中的16个数据可采用赋初值的方式,也可采用从键盘输入的方式输入数据。
#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;
}
请问错在哪里
最新回答
见过千万人

2024-04-25 01:04:19

提供的代码主要以以下两点错档纯迟误:

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语言循环控制语句

关于鹿的诗

2024-04-25 01:49:17

第四行,ints改槐绝孙成int s,少一个空格,而且输入也不对,scanf要宏好放在for循环铅链里面,还要给s赋初值0,好多错==
追问
scanf是什么意思,取地址是取我们输入的数字吗?不好意思,我是新手,所以才要来问问
逸迢弦语

2024-04-25 01:18:29

#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;
}