#include<stdio.h>
int main()
{
int m, n;
int sum=0;
scanf("%d%d",&m,&n);
int a[m][n];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
scanf("%d",&a[i][j]);
if(i==0 ||j==0||j==n-1||i==n-1){
sum+=a[i][j];//最外圈元素累加
}
}
}
sum=sum/(2*(m+n-2));
printf("最外圈的平均值:%d",sum);
}
比如我要三行,四列,int a[M][N]; scanf("%d%d",&M,&N); 这个是错误的哇,方括号中的数组长度只能为常量表达式不能为变量。。。单纯的键入我肯定知道哇
追答那是你上面的问题描述不清楚啊。
要以这种方式应用的话,也应该是
scanf("%d%d",&M,&N); int a[M][N]; scanf("%d%d",&M,&N);
这样的才对啊。
不过,在有的编译器中支持这样的定义方式,有的则不支持。在不支持的情况下,就只对根据问题的最大需求来定义。否则就要换一种方法,动态申请内存空间了。