题目描述
编写一个程序,按任意次序输入从1到16的所有整数,然后用4x4矩阵的形式将它们显示出来,再计算出每行、每列和每条对角线上的和:
16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
Row sums: 34 34 34 34
Column sums: 34 34 34 34
Diagonal sums: 34 34输入
按任意次序输入从1到16的所有整数。
输出
1、输出矩阵,按4x4矩阵的形式输出,矩阵上下行数字采用右对齐方式对齐;
2、输出每行的和,以"Row sums: "开头,按从上至下行的和顺序依次输出;
3、输出每列的和,以"Column sums: "开头,按从左至右列的和顺序依次输出;
4、输出每条对角线上的和,以"Diagonal sums: "开头,按左上至右下对角线、左下至右上对角线的和顺序依次输出。注意:数字之间用一个空格间隔,矩阵后面留一个空行,":"后留一个空格。
样例输入
16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
样例输出
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
Row sums: 34 34 34 34
Column sums: 34 34 34 34
Diagonal sums: 34 34
#include <stdio.h>
int main(void)
{
int num1, num2, num3, num4, num5, num6, num7, num8,
num9, num10, num11, num12, num13, num14, num15, num16;
int rSum1, rSum2, rSum3, rSum4;
int cSum1, cSum2, cSum3, cSum4;
int dSum1, dSum2;
scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
&num1, &num2, &num3,&num4, &num5, &num6, &num7, &num8,
&num9, &num10, &num11, &num12, &num13, &num14, &num15, &num16);
rSum1 = num1 + num2 + num3 + num4;
rSum2 = num5 + num6 + num7 + num8;
rSum3 = num9 + num10 + num11 + num12;
rSum4 = num13 + num14 + num15 + num16;
cSum1 = num1 + num5 + num9 + num13;
cSum2 = num2 + num6 + num10 + num14;
cSum3 = num3 + num7 + num11 + num15;
cSum4 = num4 + num8 + num12 + num16;
dSum1 = num1 + num6 + num11 + num16;
dSum2 = num13 + num10 + num7 + num4;
printf("%2d %2d %2d %2d\n", num1, num2, num3, num4);
printf("%2d %2d %2d %2d\n", num5, num6, num7, num8);
printf("%2d %2d %2d %2d\n", num9, num10, num11, num12);
printf("%2d %2d %2d %2d\n", num13, num14, num15, num16);
printf("\n");
printf("Row sums: %d %d %d %d\n", rSum1, rSum2, rSum3, rSum4);
printf("Column sums: %d %d %d %d\n", cSum1, cSum2, cSum3, cSum4);
printf("Diagonal sums: %d %d", dSum1, dSum2);
return 0;
}