计算矩阵相关信息

题目描述

编写一个程序,按任意次序输入从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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值