作者:手机用户2502873425 | 来源:互联网 | 2023-05-17 12:31
题目:请写一个程序,对于一个m行m列的(1<m<10)的方阵,求其每一行,每一列及主对角线元素之和,最后按照从大到小的顺序依次输出。输入说明:用一组数据,输入的第一行为一个正
题目:
请写一个程序,对于一个m行m列的(1
输入说明:用一组数据,输入的第一行为一个正整数,表示m,接下来的m行,每行m个整数表示方阵元素。
输出说明:从打到小排列的一行整数,每个整数后跟一个空格,最后换行。
输入样本:
4
15 8 -2 6
31 24 18 71
-3 -9 27 13
17 21 38 69
输出样本:
159 145 144 135 81 60 44 32 28 27
#pragma warning(disable:4996)
#include
#define N 20
int main()
{
int data[N][N],a[N];
int n, sum1,sum2,sum3, temp;
int k ;
while (scanf("%d", &n) != EOF)
{
k = 0;
sum3 = 0;
for (int i = 0; i for (int j = 0; j scanf("%d", &data[i][j]);
for (int i = 0; i {
sum1 = 0;
sum2 = 0;
for (int j = 0; j {
if (i == j)
sum3 += data[i][j]; //用sum3记录对角线元素的和
sum1 += data[i][j]; //用sum1记录每一行元素的和
sum2 += data[j][i]; //用sum2记录每一列元素的和
}
a[k++] = sum1;
a[k++] = sum2;
}
a[k++] = sum3;
for (int i = 0; i for (int j = 0; j {
if (a[j] {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
for (int i = 0; i printf("%-4d", a[i]);
printf("\n");
}
return 0;
}