给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
输入格式:
输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
输入样例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例:
35
代码一:
#include<stdio.h>
int main()
{ int a[10][10],n,sum=0,sum1=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{scanf("%d",*(a+i)+j);sum+=*(*(a+i)+j);}
int duijiao=n-2;
for(int i=1;i<=n-2;i++)
sum1+=*(*(a+duijiao--)+i);
for(int i=0;i<n-1;i++)
sum1+=*(*(a+n-1)+i);
for(int i=0;i<n;i++)
sum1+=*(*(a+i)+n-1);
printf("%d",sum-sum1);
return 0;
}
代码二:
#include <stdio.h>
int main(){
int m=0,n=0,i=0,j=0;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
if(i!=n-1&&j!=n-1&&j!=n-1-i){
m=m+a[i][j];
}
}
}
printf("%d",m);
return 0;
}
代码三:
#include<stdio.h>
int main(void)
{
int i,j,n,a[10][10],sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d ",&a[i][j]);
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1;j++)
{
sum+=a[i][j];
}
sum-=a[i][n-1-i];
}
sum+=a[0][n-1];
printf("%d",sum);
return 0;
}
代码四:
#include<stdio.h>
int main(){
int a,b,c,d,e,f,g,sum=0;
scanf("%d",&a);
int x[a][a];
for(b=0;b<a;b++){
for(c=0;c<a;c++){
scanf("%d",&x[b][c]);
sum=sum+x[b][c];
}}
sum=sum-x[0][a-1];
for(c=1;c<a-1;c++)sum=sum-x[c][a-1-c]-x[c][a-1];
for(b=0;b<a;b++){
sum=sum-x[a-1][b];
}
printf("%d",sum);
}