1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)
#include#define N 100void readscore(int score[],int n);//输入函数 double average(int score[],int n);//求平均 int findmaxindex(int score[],int n,int index[]);//求最高分及对应下标 int findminindex(int score[],int n,int index[]);//求最低分及对应下标 int Search(int score[],int n,int x);//查找 void bubblesort(int score[],int n);//排序void printscore(int score[],int n);//输出函数 int main(){ int score[N]={ 0},n,i,sum,count1,count2,index[N]={ 0},chazhao,x; double ave; printf("请输入人数\n"); scanf("%d",&n); readscore(score,n); ave=average(score,n); printf("平均值为%.2f\n",ave); count1=findmaxindex(score,n,index); for(i=0;i max) { max=score[i]; count1=0; index[count1++]=i; } } return count1;}int findminindex(int score[],int n,int index[])//求最低分对应的学生 { int i,min,count2; min=score[0]; count2=0; for(i=0;i score[j+1]) { t=score[j]; score[j]=score[j+1]; score[j+1]=t; flag=1; } } if(flag==0) { break; } } }
2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。
#include#define N 100int main(){ int a[100]={ 0},i,j,m=0; for(i=0;i<100;i++) { a[i]=i+1; } for(i=0;i<100;i++) { if(a[i]%3==0||a[i]%7==0) { a[i]=0; continue; } else { printf("%5d",a[i]); m++; } } printf("一共有%d个",m);}
二、实验总结(实验中遇到的问题及解决方法)
1.记得要赋初值。
2.continue只结束一条语句,break是跳出循环。
3.在调用函数时注意函数的一一对应。
4.冒泡法的思路是:将相邻两个数比较,将小的调到前头。
三、程序分析
上述是两个程序执行出来的结果,执行出的结果将两个数值交换了
程序1:数组作函数参数,是将实参数组的地址传给形参数组,结果将结果交换。
程序2:简单参数,只是单向传递,所以输出值不会改变。