1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)
#include<stdio.h> #define N 1000 int cj(int score[]);//输入函数 void cjc(int score[],int n);//输入成绩 int search(int num[],int n,int x);//查找 int findMinlndex(int score[],int n);//最小值的下标 int findMaxlndex(int score[],int n);//最大值的下标 void bubbleSort(int score[],int n);//排序 double average(int score[],int n);//平均值 int main() { int a,x,n,num[N],score[N],b,c; double ave; n=cj(score); ave=average(score,n); printf("请输入要查找的成绩%d "); scanf("%d",&x); a=search(num,n,x); bubbleSort(score,n); b=findMaxlndex(score,n); c=findMinlndex(score,n); if(a!=-1) { printf("第%d位同学的成绩",a+1); } printf("平均成绩%.2f ,最高成绩为%d,最低成绩为%d ",ave,b,c); cjc(score,n); return 0; } int cj(int score[])//输入 { int i=0; printf("请输入成绩 "); while(1) { scanf("%d",&score[i]); if(score[i]<0) break; i++; } return i; } void Score(int score[],int n) { int i; for(i=0;i<n;i++) { printf("请输入第%d个学生的成绩: ",i+1); scanf("%d",&score[i]); } } void cjc(int score[],int n)//输出 { int i; for(i=0;i<n;i++) { printf("%5d",score[i]); } } void bubbleSort(int score[],int n)//排序 { int i,j,flag,t; for(i=0;i<n-1;i++) { flag=0; for(j=0;j<=n-1-i;j++) { if(score[j]>score[j+1]) { t=score[j]; score[j]=score[j+1]; score[j+1]=t; flag=1; } } if(flag==0) break; } } int search(int num[],int n,int x)//查找 { int i,a; for(i=0;i<n;i++) { if(num[i]==x) return i; } return -1; } int findMinlndex(int score[],int n)//最小 { int i,minb=0; for(i=0;i<n;i++) { if(score[i]<score[minb]) { minb=i; } } return minb; } double average(int score[],int n)//平均值 { int i,sum=0; for(i=0;i<n;i++) { sum+=score[i]; } return (double)sum/n; } int findMaxlndex(int score[],int n)//最大 { int i,maxb=0; for(i=0;i<n;i++) { if(score[i]>score[maxb]) { maxb=i; } } return maxb; }
总结:主函数不太会用了,很混乱,每个函数放的顺序也有讲究。
2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。
#include<stdio.h> int main() { int i,a=0; for(i=1;i<=100;i++) { if((i%3!=0)&&(i%7!=0)) { printf(" %3d",i); a++; } if(a%10==0) { printf(" "); } } printf("一共%d个",a); return 0; }
总结:只用了一个主函数,感觉还可以。
知识点
1,函数不可以包含在主函数内。
2,函数中定义的变量在只存在于该函数。
3,函数中定义的数组却可以用在其他函数中。
实验总结
我看了火柴棍的那几种优化,各有各的特点,还是函数的最简单。