为什么运行后和答案不一样
许你一生v 资深达人 2015-08-18 20:11:36
1211 2 0

程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
例如:a 数组中的值为
                |0  1  2  7  9|
                |1  9  7  4  5|
        a =   |2  3  8  3  1|
                |4  5  6  8  2|
                |5  9  1  4  1|
则返回主程序后s的值应为: 3.375。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句

#include <stdio.h>

#include <stdlib.h>

#define  N  5

double fun ( int w[][N] )

{

int i,j,k=0;

double s=0.0;

     for (i=0;i<N;i++)

       for (j=0;j<N;j++)

        if (i==0||i==N-1||j==0||i==N-1)

{

          s=w[i][j]+s;

            k++;

}

 return s/k;


红色是我自己写的


}


main ( )

{  int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};

   int i, j;void NONO ();

   double s ;

   printf("***** The array *****\n");

   for ( i =0;  i<N; i++ )

   {  for ( j =0; j<N; j++ )

     {  printf( "%4d", a[i][j] ); }

        printf("\n");

   }

   s = fun ( a );

   printf ("***** THE  RESULT *****\n");

   printf( "The sum is :  %lf\n",s );

   NONO( );

}


void NONO ()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

  FILE *rf, *wf ;

  int i, j, a[5][5]; double s ;


  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  for(i = 0 ; i < 5 ; i++)

  for(j = 0 ; j < 5 ; j++) fscanf(rf, "%d ", &a[i][j]) ;

  s = fun(a) ;

  fprintf(wf, "%lf\n", s);

  fclose(rf) ;

  fclose(wf) ;

}



问题来自: 编程题真题

共 2 个回答

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题