输入4行4列的二维数组,求计算主对角线各元素之和,计算副对角线各元素之和。
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了。
程序如下:
#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);
}
广告 您可能关注的内容 |