从键盘输入一个4*4矩阵,并求这个4*4矩阵主对角线元素之和,并输出.球C语言编程
# 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;
}
运行结果:
扩展资料:
printf()用法:
1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。
格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。
要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。
2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。
#include <stdlib.h>
void main()
{
int a[4][4];
int i=0;
int sum=0;
printf("输入4*4矩阵的各元素:\n");
for(;i<16;i++)
{
scanf("%d",&a[i/4][i%4]);
}
for(i=0;i<4;i++)
{
sum+=a[i][i];
sum+=a[i][3-i];
}
printf("该对角线元素之和sum=%d\n",sum);
getchar();
getchar();
}
#define N 4
int main()
{
int i,j,sum=0,a[N][N];
printf("请输入4*4矩阵的各元素:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
if(i==j)
{sum+=a[i][i];}
}
printf("主对角线元素之和:%d\n",sum);
return 0;
}
这样可以么?
int main()
{
int a[4][4],sum=0;
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
if(i==j)
sum=sum+a[i][j];
}
}
printf("%d",sum);
return 0;}