#include <stdio.h>
#define M 3
#define N 4
/*
1 2 3 4
5 6 7 8
9 10 11 12
*/
int main()
{
int a[M][N],i,j,sum=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
sum+=a[i][j];
printf("未加第二行%d\n",sum);
if(i!=0&&i!=M-1)
{
sum+=a[i][N-1];//此处加8之后跳出本次内循环
printf("加第二行%d\n",sum);
break;//必须有,用处跳出循环,不然运算结果出错
}
}
}
printf("%d",sum);
return 0;
}
#include <stdio.h>
#define M 3
#define N 4
/*
1 2 3 4
5 6 7 8
9 10 11 12
*/
int main()
{
int a[M][N],i,j,sum=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
if(i!=0&&i!=M-1&&j!=0&&j!=N-1)continue;//此处为不同地方
sum+=a[i][j];
}
}
printf("%d",sum);
return 0;
}
第三种方式
#include <stdio.h>
#define M 3
#define N 4
/*
1 2 3 4
5 6 7 8
9 10 11 12
*/
int main()
{
int s[M][N],i,j,sum=0,a=0,b=0,c=0,d=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&s[i][j]);
}
}
for(i=0;i<M;i++)
a+=s[i][0];//第一列之和
for(i=0;i<M;i++)
b+=s[i][N-1];//最后一列之和
for(i=0;i<N;i++)
c+=s[0][i];//第一行之和
for(i=0;i<N;i++)
d+=s[M-1][i];//最后一行之和
sum=a+b+c+d-s[0][0]-s[0][N-1]-s[M-1][0]-s[M-1][N-1];//四个对角多加一遍,必须减去
printf("%d",sum);
return 0;
}