计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。

//函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出。

//重难点:形参与实参之间,是否进行了值传递。

 1 #include  <stdlib.h>
 2 #include  <stdio.h>
 3 #define   N   10
 4 double fun(double  x[],double  *av)
 5 { int  i,j;    double  d,s;
 6   s=0;
 7   for(i=0; i<N; i++)  s = s +x[i];
 8 /**********found**********/
 9   *av=s/N;//把平均值赋给形参//这个地方注意,要要写N,不能写数字。
10   d=32767;
11   for(i=0; i<N; i++)
12     if(x[i]<*av && *av - x[i]<=d){
13 /**********found**********/
14       d=*av-x[i]; 
15       j=x[i];
16      }
17 /**********found**********/
18   return  j;
19 }
20 void main()
21 { int  i;    double  x[N],av,m;
22   for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);}
23   printf("\n");
24   m=fun(x,&av);//加取地址符之后就可以实现,形参实参值互传。
25   printf("\nThe average is: %f\n",av);
26   printf("m=%5.1f ",m);
27   printf("\n");
28 }

//函数fun函数的功能是:根据整型形参n,计算如下公式的值。A1=1,A2=1/(1+A1),An=1/(1+A(n-1))。

//重难点:注意函数返回值类型。

 1 #include  <stdlib.h>
 2 #include  <conio.h>
 3 #include  <stdio.h>
 4 /*************found**************/
 5 double fun(int *n)//注意这里函数返回值类型
 6 { double A=1;int i;
 7 /*************found**************/
 8   for(i=2;i<n+1;i++)
 9      A=1.0/(1+A);
10   return A;
11 }
12 void main()
13 { int n;
14   system("CLS");//清屏
15   printf("\nPlease enter n: ");
16   scanf("%d",&n);
17   printf("A%d=%lf\n",n,fun(n));
18 }

//在程序中,定义了N*N的二维数组,并在主函数中自动赋值,编写函数fun功能是使数组右上半角元素中的值乘以m。

//重难点:对二维数组数据进行操作。对文件进行操作。

 1 #include <conio.h>
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 #include <string.h>
 5 #define  N  5
 6 void fun(int a[][N], int m)
 7 {
 8     int i,j;
 9     for (i = 0; i < N; i++)
10     {
11         for (j = i; j < N; j++)
12         {
13             a[i][j] = a[i][j] * m;
14         }
15     }
16 }
17 void main()
18 { 
19   int a[N][N],m, i, j;
20   FILE *out;
21   printf("*****The array*****\n");
22   for(i=0;i<N;i++)
23         { for(j=0;j<N;j++)
24             {a[i][j]=rand()%20;
25              printf("%4d", a[i][j]);
26             }
27         printf("\n");
28         }
29   m=rand()%4;
30   printf("m=%4d\n",m);
31   fun(a,m);//这里传递的是a(为数组首地址,所以形参值会同步到实参中。)
32   printf("THE RESULT\n"); 
33   for(i=0;i<N;i++)
34      { for(j=0;j<N;j++) 
35           printf("%4d",a[i][j]);
36        printf("\n");
37      }
38   /******************************/
39   out=fopen("out.dat","w");
40   for(i=0;i<N;i++)
41         for(j=0;j<N;j++)
42             a[i][j]=i*j;
43   fun(a,8);
44   for(i=0;i<N;i++)
45   {     for(j=0;j<N;j++)
46             fprintf(out,"%4d",a[i][j]);
47         fprintf(out,"\n");
48   }
49   fclose(out);
50   /******************************/
51 }

 

posted @ 2019-01-16 21:45  小大大小  阅读(733)  评论(0编辑  收藏  举报