计算机二级-C语言-对结构体数据进行求平均值。对结构体数据进行比较处理。
//函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数返回,并将大于平均值的数放在形参y所指数组中,在主函数中输出。
//重难点:对结构体数据进行求平均值。
1 #include <stdlib.h> 2 #include <stdio.h> 3 #define N 10 4 double fun(double x[],double *y) 5 { int i,j; double av; 6 /**********found**********/ 7 av=0; 8 /**********found**********/ 9 for (i = 0; i < N; i++) 10 av = av + x[i]/10; 11 for(i=j=0; i<N; i++) 12 /**********found**********/ 13 if(x[i]>av) y[j++]= x[i]; 14 y[j]=-1;//判断结束标识符 15 return av; 16 } 17 void main() 18 { int i; double x[N],y[N]; 19 for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);} 20 printf("\n"); 21 printf("\nThe average is: %f\n",fun(x,y)); 22 for(i=0; y[i]>=0; i++) printf("%5.1f ",y[i]); 23 printf("\n"); 24 }
//函数fun的功能是:根据整型参数m,计算如下公式的值。
//重难点:函数返回值类型相一致。
1 #include <stdlib.h> 2 #include <conio.h> 3 #include <stdio.h> 4 /*************found**************/ 5 double fun (int m) 6 { double y=0, d; 7 int i; 8 /*************found**************/ 9 for (i = 100; i <= m; i += 100) 10 { 11 {d = (double)i*(double)i; 12 y += 1.0 / d; 13 } 14 } 15 return(y); 16 } 17 void main() 18 { int n=2000; 19 system("CLS");//执行控制台命令cls,就是CMD下面的cls,功能是清屏,清除所有显示的信息。 20 printf("\nThe result is %1f\n",fun(n)); 21 }
//在此程序中,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。编写fun函数:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
//重难点:对结构体数据的处理。
1 #include<stdio.h> 2 #include<string.h> 3 #include<conio.h> 4 #include<stdlib.h> 5 #define N 10 6 typedef struct ss 7 { char num[10]; 8 int s; 9 } STU; 10 void fun(STU a[], STU *s) 11 { 12 int i; 13 //s = a;这个相当于把首地址互等 14 s[0] = a[0];//这个把值互等 15 for (i = 0; i < N; i++) 16 { 17 if (a[i].s < s[0].s) 18 { 19 s[0] = a[i]; 20 } 21 } 22 } 23 void main() 24 { 25 FILE *wf; 26 STU a[N]={{ "A01",81},{ "A02",89},{ "A03",66},{ "A04",87},{ "A05",77}, 27 { "A06",90},{ "A07",79},{ "A08",61},{ "A09",80},{ "A10",71}},m; 28 int i; 29 system("CLS");//执行控制台命令cls,就是CMD下面的cls,功能是清屏,清除所有显示的信息。 30 printf("*****The original data*****\n"); 31 for(i=0;i<N;i++) 32 printf("No=%s Mark=%d\n", a[i].num,a[i].s); 33 fun(a,&m); 34 printf("*****THE RESULT*****\n"); 35 printf("The lowest :%s, %d\n",m.num,m.s); 36 /******************************/ 37 wf=fopen("out.dat","w"); 38 fprintf(wf,"%s, %d",m.num,m.s); 39 fclose(wf); 40 /*****************************/ 41 }