|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int average(int *(a)[],int m,int n);//编译器提示这一行有问题
- int main()
- {
- int m,n,i,j;
- scanf("%d,%d",&m,&n);//输入行数和列数
- int array[m][n];
- //输入二维数组的元素
- for(i=0;i<m;i++){
- for(j=0;j<n;j++){scanf("%d",*(array+i)+j);
- }
- }
- float ave = average(*(array)[],m,n);//编译器提示这一行有问题
- printf("%f",ave);
- return 0;
- }
- int average(int *(a)[],int m,int n)
- {
- int sum,i,num;
- for(i=0;i<m;i++){sum+=*(*(a)+i);
- }
- for(i=0;i<m;i++){sum+=*(*(a+m)+i);
- }
- for(i=0;i<n-2;i++){sum+=*(*(a+i+2)+1);
- }
- for(i=0;i<n-2;i++){sum+=*(*(a+i+2)+n);
- }
- num=m*2+(n-2)*2;
- float d=sum/num;
- return d;
- }
复制代码
编译器提示第2行和第12行有问题,程序运行的时候输入完行数列数和所有元素之后就结束了,打印不出结果,请大佬帮忙看看是怎么回事啊
本帖最后由 jackz007 于 2021-11-14 20:24 编辑
- #include <stdio.h>
- float average(int * a[] , int m , int n)
- {
- int sum , i , num ;
- for(sum = 0 , i = 0 ; i < m ; i ++) sum += a[i][0] + a[i][n - 1] ;
- for(i = 1 ; i < n - 1 ; i ++) sum += a[0][i] + a[m - 1][i] ;
- num = m * 2 + (n - 2) * 2 ;
- return 1.0 * sum / num ;
- }
- int main(void)
- {
- int m , n , i , j ;
- scanf("%d%d" , & m , & n) ; //输入行数和列数
- int array[m][n] , * p[m] ;
- for(i = 0 ; i < m ; i ++) {
- for(j = 0 ; j < n ; j ++) scanf("%d" , & array[i][j]) ;
- p[i] = array[i] ;
- }
- printf("%f\n" , average(p , m , n)) ;
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 3 4
- 1 2 3 4
- 5 6 7 8
- 9 10 11 12
- 6.500000
- D:\00.Excise\C>
复制代码
|
|