【问题描述】
读入一个正整数n(1<=n<=6),再读入n 阶矩阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线为从矩阵的右上角至左下角的连线)。
【输入形式】
从键盘输入一个正整数n和n阶矩阵。
【输入输出样例1】(下划线部分表示输入)
Input n:4
Input array:
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
sum =35
【样例说明】
输入提示符后要加一个空格。例如Input n: ,其中:后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。
#include <stdio.h>
int result(int n,int m,int a[n][m]){
int i,j,sum=0;
for(i=0;i<n-1;i++){
for(j=0;j<m-1;j++){
sum+=a[i][j];
}
}//去掉最后一列和最后一行
int flag=m-1;
for(i=1;i<n-1;i++){
flag--;
//for(j=1;j<n-1;j++){
sum-=a[i][flag];
//printf("the mun is %d\n",a[i][flag]);
//}
}//去掉副对角线
return sum;
}
int main(int argc, char *argv[])
{
int n,i,j,sum=0;
printf("Input n:\n");
scanf("%d",&n);
int a[n][n];
printf("Input array:\n");
for (i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
printf("sum=%d",sum=result(n,n,a));
}