慕粉4105356
2017-02-01 16:49
#include <stdio.h> //计算考试总分 int allScore(int score[]) { int sum=0; int i; for(i=0;i<N;i++) { sum+=score[i]; printf("总分是: %d\n",sum); } return sum; } //最高分 int maxScore(int score[]) { int max=-1; int i; for(i=0;i<N;i++) { if(score[i]>max) { max=score[i]; printf("最高分是: %d\n",max); } } return max; } //最低分 int minScore(int score[]) { int min=100; int i; for(i=0;i<N;i++) { if(score[i]<min) { min=score[i]; printf("最低分是: %d\n",min); } } return min; } //平均分 int getAvgScore(int score[]) { int avg=0; avg+=allScore(score)/N; printf("平均分是: %d\n",avg); return avg; } //考试成绩降序排序 int sortScore(int score[]) { int i,j; for(i=9;i>=0;i--) { for(j=0;j<=i;j++) { if(score[j]>score[j+1]) { int temp; temp=score[j]; score[j]=score[j+1]; score[j+1]=temp; } } } return score; } int main() { int score[N]={67,98,75,63,82,79,81,91,66,84}; printf("%d\n",allScore(score),maxScore(score),minScore(score),getAvgScore(score));
1、所有函数,函数内已有输出在这里就没必要用返回值了
2、平均分最好不用整形定义,结果不一定是整数
3、排序函数,完全不需要返回值,对数组的排序直接作用于地址,函数对引用数组进行的改变直接作用于原数组
4、主函数,输出部分,一个 %d 对应一个整形数,这里只有一个 %d,比需要输出的参数少
#include <stdio.h> int sum(int score[]) { int i,j=0; for(i=0;i<10;i++) { j+=score[i]; } return j; } int hightst(int score[]) { int i; for(i=0;i<9;i++) { if(score[i]>score[i+1]) { int j=score[i]; score[i]=score[i+1]; score[i+1]=j; } } return score[9]; } int lowst(int score[]) { int i; for(i=0;i<9;i++) { if(score[i]<score[i+1]) { int j=score[i]; score[i]=score[i+1]; score[i+1]=j; } } return score[9]; } int average(int score[]) { int n=sum(score); int av= n/10; return av; } int down(int score[]) { int i,j; for(i=8;i>=0;i--) { for(j=0;j<=i;j++) { if(score[j]<score[j+1]) { int n=score[j]; score[j]=score[j+1]; score[j+1]=n; } } } printf("降序排列:\n"); for(i=0;i<10;i++) printf("%3d",score[i]); return 0; } int main() { int score[]={67,98,75,63,82,79,81,91,66,84}; printf("sum %d\n;",sum(score)); printf("hightst %d\n",hightst(score)); printf("lowst %d\n",lowst(score)); printf("average %d\n",average(score)); down(score); return 0; }
C语言入门
926027 学习 · 20793 问题
相似问题