1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)
#include#include #define N 101int x,index_query[N]={ 0},index_score[N]={ 0};int imax(int score[]);int imin(int score[]);double average(int score[]);void input(int score[]);void output(int score[]);void query(int score[],int n);void bubblesort(int score[]);int main(){ int score[N]={ 0}; char c; input(score); printf("计算完毕(输入Y继续)\n"); fflush(stdin); if((c=getchar())=='Y'||c=='y') { output(score); }}void input(int score[]){ int i; printf("本程序可处理100个以内的成绩统计问题,请输入成绩个数\n"); scanf("%d",&x); printf("您共要输入%d个成绩,下面请输入:",x); for(i=0;i =max) { max=score[i]; } } query(score,max); return max;}int imin(int score[]){ int i=0,min,ii=0; min=score[0]; for(i=1;i
2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。
#include#define N 100int main(){ int i,n=0,sum[N]; for(i=0;i<100;i=i+1) { sum[i]=i+1; } for(i=0;i<100;i=i+1) { if(sum[i]%3==0||sum[i]%7==0) { sum[i]=0; } } for(i=0;i<100;i++) { if(sum[i]!=0) { n++; printf("%d ",sum[i]); } } printf("\n还剩下%d个数\n",n);}
实验报告
1、自定义函数确实好用。
2、处于偷懒目的使用了全局变量和数组。(逃~)
3、时间不够没写附加题。(典型找打)
程序分析
关于两个程序,我个人的理解是,作为实参的变量可以说是一个相对固定的“个体”,而数组则是划定范围的“容器”,形参则是“地标”。作为容器来讲,内部的“个体(下标变量)”是可以被取走或改变的。