编写一个程序,要求用户(按任意次序)输入从1到16的所有整数,然后用4×4矩阵的形式将它们显示出来,再计算出每行、每列和每条对角线上的和:
# include <stdio.h>
int main()
{
int a11, a12, a13, a14;//定义第一行数字
int a21, a22, a23, a24;
int a31, a32, a33, a34;
int a41, a42, a43, a44;
int rowSum1 = 0, rowSum2 = 0, rowSum3 = 0, rowSum4 = 0;//计算每行数字的和
int columnSum1 = 0, columnSum2 = 0, columnSum3 = 0, columnSum4 = 0;//计算每列数字的和
int DiagonalSum1 = 0, DiagonalSum2 = 0;//计算每条对角线上数字的和
printf("Enter the numbers from 1 to 16 in any order: ");
scanf("%d%d%d%d", &a11, &a12, &a13, &a14);
scanf("%d%d%d%d", &a21, &a22, &a23, &a24);
scanf("%d%d%d%d", &a31, &a32, &a33, &a34);
scanf("%d%d%d%d", &a41, &a42, &a43, &a44);
printf("%5d %5d %5d %5d\n", a11, a12, a13, a14);
printf("%5d %5d %5d %5d\n", a21, a22, a23, a24);
printf("%5d %5d %5d %5d\n", a31, a32, a33, a34);
printf("%5d %5d %5d %5d\n", a41, a42, a43, a44);
rowSum1 = a11 + a12 + a13 + a14;
rowSum2 = a21 + a22 + a23 + a24;
rowSum3 = a31 + a32 + a33 + a34;
rowSum4 = a41 + a42 + a43 + a44;
columnSum1 = a11 + a21 + a31 + a41;
columnSum2 = a12 + a22 + a32 + a42;
columnSum3 = a13 + a23 + a33 + a43;
columnSum4 = a14 + a24 + a34 + a44;
DiagonalSum1 = a11 +a22 + a33 + a44;
DiagonalSum2 = a14 +a23 + a32 + a41;
printf("rowSums: %5d %5d %5d %5d\n", rowSum1, rowSum2, rowSum3, rowSum4);
printf("columnSums: %5d %5d %5d %5d\n", columnSum1, columnSum2, columnSum3, columnSum4);
printf("DiagonalSums: %5d %5d\n", DiagonalSum1, DiagonalSum2);
return 0;
}