从键盘上输入矩阵的阶数n(n<=14), 矩阵中元素的值等于其位置的行数和列数之和的n倍(行列的值从0开始计数),先输出该矩阵(显示时每个数宽度为4、右对齐),然后计算输出sum1和sum2的值:sum1为矩阵中所有不靠边元素之和、sum2为矩阵的一条对角线元素之和。
输入格式:
从键盘上输入矩阵的阶数n(n<=14)
输出格式:
先输出该矩阵(显示时每个数宽度为4、右对齐),然后计算输出sum1和sum2的值:sum1为矩阵中所有不靠边元素之和、sum2为矩阵的一条对角线元素之和。
输入样例:
3
结尾无空行
输出样例:
0 3 6
3 6 9
6 9 12
sum1=6
sum2=18
#include<stdio.h>
int main()
{
int s[14][14] = { {0} };
int a = 0;
scanf("%d", &a);
int i = 0, j = 0, sum1 = 0, sum2 = 0;
for (i = 0; i < a; i++)
{
for (j = 0; j < a; j++)
{
s[i][j] = (i + j) * a;
}
}
//求不靠边元素之和
for (i = 1; i < a - 1; i++)
{
for (j = 1; j < a - 1; j++)
{
sum1 = sum1 + s[i][j];
}
}
//求主对角线元素之和
int c = a-1;
i = 0;
while(i<a)//行
{
while (c >= 0)
{
sum2 = sum2 + s[i][c];
c = c - 1;
break;
}
i = i + 1;
}
for (i = 0; i < a; i++)
{
for (j = 0; j < a; j++)
{
printf("%4d", s[i][j]);
}
printf("\n");
}
printf("sum1=%d\n", sum1);
printf("sum2=%d", sum2);
}