#include<stdio.h>
#include <stdlib.h>
int main()
{
int i,j,k,p,m,n;
int sum=0;
scanf("%d %d",&m,&n);
int* num=(int*)malloc(m*n);
for(i=0;i<m*n;i++)
{
scanf("%d",num+i);
}
//矩阵两侧的数据的和
for(i=0;i<(m*n);i+=n)
{
sum+=num[i];
sum+=num[i+n-1];
}
//第一行和最后一行的数据的和 (除去首尾的数据)
for(p=1,k=((m*n)-2),j=(n-2);j>0;p++,k--,j--)
{
sum+=num[p];
sum+=num[k];
}
free(num);
printf("%d",sum);
return 0;
}
内存申请改为:int* num = (int*)malloc(m * n*sizeof(int)); //申请的是字节数,int为4字节