第九次作业
1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)
#include <stdio.h> #define N 100 void readscore(int score[],int n); void printscore(int score[],int n); double average(int score[],int n); int findmax(int score[],int n); int findmin(int score[],int n); void findmaxlndex(int score[],int n,int max); void findminlndex(int score[],int n,int min); void search(int score[],int n,int x); void bubblesort(int score[],int n); int main() { int score[N]={0},n,max,min,x; double ave; printf("请输入学生人数(n<100):"); scanf("%d",&n); readscore(score,n); printscore(score,n); ave=average(score,n); printf("平均分为%.2f\n",ave); max=findmax(score,n); printf("最高分为%d\n",max); min=findmin(score,n); printf("最低分为%d\n",min); findmaxlndex(score,n,max); findminlndex(score,n,min); printf("输入查询的成绩"); scanf("%d",&x); search(score,n,x); bubblesort(score,n); printf("\n排序后为"); printscore(score,n); return 0; } void readscore(int score[],int n) { int i; printf("输入成绩\n"); for(i=0;i<n;i++) { scanf("%d",&score[i]); } } void printscore(int score[],int n) { int i; for(i=0;i<n;i++) { printf("%5d",score[i]); } printf("\n"); } double average(int score[],int n) { int i,sum=0; for(i=0;i<n;i++) { sum+=score[i]; } return (double)sum/n; } int findmax(int score[],int n) { int i,max; max=score[0]; for(i=1;i<n;i++) { if(score[i]>max) { max=score[i]; } } return max; } int findmin(int score[],int n) { int i,min; min=score[0]; for(i=1;i<n;i++) { if(score[i]<min) { min=score[i]; } } return min; } void findmaxlndex(int score[],int n,int max) { int i,maxlndex=0; for(i=0;i<n;i++) { if(score[i]==max) { printf("第%2d个",i+1); } } printf("为最高分"); printf("\n"); } void findminlndex(int score[],int n,int min) { int i,minlndex=0; for(i=0;i<n;i++) { if(score[i]==min) { printf("第%2d个",i+1); } } printf("为最低分"); printf("\n"); } void search(int score[],int n,int x) { int i; for(i=0;i<n;i++) { if(score[i]==x) printf("是第%d个",i+1); } } void bubblesort(int score[],int n) { int i,j,t,flag; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { flag=0; if(score[j]>score[j+1]) { t=score[j]; score[j]=score[j+1]; score[j+1]=t; flag=1; } } } }

2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。
#include<stdio.h> #define N 100 int main() { int a[100]={0},x,y=0; for(x=0;x<100;x++) { a[x]=x+1; } for(x=0;x<100;x++) { if(a[x]%3==0||a[x]%7==0) { a[x]=0; continue; } else { printf("%5d",a[x]); y++; } } printf("\n总共%d个",y); }

实验总结
1,用continue结束
知识点总结
1,注意数组不要越界

浙公网安备 33010602011771号