输入4行4列的二维数组,求计算主对角线各元素之和,计算副对角线各元素之和。

2 3 5 8
1 0 1 2
4 5 7 6
1 0 2 3 i=0 to 3
j=0 to 3
if(i==j)
sum=sum+a[i][j]

#include<stdio.h>

int main(void)

{

int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

int i,j,sum1,sum2;//定义sum1,sum2,分别存放两条对线元素的和;

sum1=sum2=0;

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

printf("%-5d",a<i>[j]);//输出该数组矩阵;

printf("\n");

}

printf("\n第一条对角线的元素值分别为:\n");

for(i=0;i<4;i++)

{

printf("a[%d][%d]=%-3d",i,i,a<i><i>);//打印第一条对角线的元素及其值;

sum1+=a<i><i>;//求出第一条对角线的元素和;

}

printf("\n其元素的和值为:%d\n",sum1);

printf("\n第二条对角线的元素值分别为:\n");

j=3;//第二条对角线元素为a[0][3]、a[1][2]、a[2][1]、a[3][0],用j的值约束列的值;

for(i=0;i<4;i++)

{

printf("a[%d][%d]=%-3d",i,i+j,a<i>[i+j]);//打印第二条对角线的元素及其值;

sum2+=a<i>[i+j];//求出第二条对角线的元素和;

j-=2;//第二条对角线元素列的值每次-1,但是行的值每次+1,所以j的值每次-2;

}

printf("\n其元素的和值为:%d\n",sum2);

printf("\n两条对角线元素的和值为:%d\n",sum1+sum2);

return 0;

}

扩展资料:

system.out.printf()的使用方法

//"%"表示进行格式化输出,"%"之后的内容为格式的定义。

System.out.printf("%f",d);//"f"表示格式化输出浮点数

System.out.println();

System.out.printf("%9.2f",d);//"9.2"中的9表示输出的长度,2表示小数点后的位数。

System.out.println();

System.out.printf("%+9.2f",d);//"+"表示输出的数带正负号

System.out.println();

System.out.printf("%-9.4f",d);//"-"表示输出的数左对齐(默认为右对齐)。

System.out.println();

System.out.printf("%+-9.3f",d);//"+-"表示输出的数带正负号且左对齐。

System.out.println();

System.out.printf("%d",i);//"d"表示输出十进制整数。

System.out.println();system.out.printf("%02d",2);

%d表示打印整型的,

%2d表示把整型数据打印最低两位,

%02d表示把整型数据打印最低两位,如果不足两位,用0补齐,

所以打印出来就是02了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
您好!很高兴为您解答。

程序如下:

#include<stdio.h>

void main()
{
int i,j,sum=0,a[4][4];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
if(i==j) sum=sum+a[i][j];
}
}
printf("主对角线元素之和:%d\n",sum);
}
已通过编译。

望采纳~如您还有不解,欢迎追问~追问

辅助角线元素之和怎么写?

追答

不好意思,看漏了……

#include

void main()
{
int i,j,sum1=0,sum2=0,a[4][4];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
if(i==j) sum1+=a[i][j];
if(i+j==3) sum2+=a[i][j];
}
}
printf("主对角线元素之和:%d\n",sum1);
printf("辅对角线元素之和:%d\n",sum2);
}

本回答被提问者采纳