| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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>
 
  复制代码 
 
 
 |   
 
 
 
 |