#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;
}