不知道怎么从键入M和N的值
#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);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2020-05-10
在C语言程序中,使用scanf函数,就可以读入m和n的值。
scanf("%d%d",&m,&n);
如果连读入m和n的值都不知道,那距离完成整个题目的距离,就不是一丁点了。老师讲课的时候,应该要花一点时间和精力的。做一个好好的“读书的小儿郞”吧。追问
scanf("%d%d",&m,&n);
如果连读入m和n的值都不知道,那距离完成整个题目的距离,就不是一丁点了。老师讲课的时候,应该要花一点时间和精力的。做一个好好的“读书的小儿郞”吧。追问
比如我要三行,四列,int a[M][N]; scanf("%d%d",&M,&N); 这个是错误的哇,方括号中的数组长度只能为常量表达式不能为变量。。。单纯的键入我肯定知道哇
追答那是你上面的问题描述不清楚啊。
要以这种方式应用的话,也应该是
scanf("%d%d",&M,&N); int a[M][N]; scanf("%d%d",&M,&N);
这样的才对啊。
不过,在有的编译器中支持这样的定义方式,有的则不支持。在不支持的情况下,就只对根据问题的最大需求来定义。否则就要换一种方法,动态申请内存空间了。