C语言编程程序,成绩排序并求最高低分

来源:百度知道 编辑:UC知道 时间:2024/06/17 11:25:15
设有某班20个学生的单科成绩,请将成绩按照高分到低分进行排序,并找出最高分和最低分.
要求:定义一个排序函数供主函数调用;定义一个求最高分、最低分的程序被主函数调用;自己给出20个学生的成绩。
也不太清楚那个回答是否正确,可能是对的吧,大家也可以参考下我自己编的程序:
#include<stdio.h>
#define N 20
//下面定义排序函数range
void range(int s[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=i+1;j<n+1;j++)
if(s[j]>s[i]){t=s[i];s[i]=s[j];s[j]=t;}
}
int max(int s[],int n)
{int i,max;
max=s[0];
for(i=0;i<N;i++){if(s[i]>max)max=s[i];}
return max;}
int min(int s[],int n)
{
int i,min;
min=s[0];
for(i=0;i<N;i++){if(s[i]<min)min=s[i];}
return min;
}
void main()
{int i,score[N]= {75,88,70,62,92,86,83,94,75,78,81,76,60,54,80,65,67,79,98,86};
printf("20个学生的成绩是:\n");
for(i=0;i<20;i++)printf("%d ",score[i]);
printf("从高分到低分排序后成绩是:\n");
range(score,N);
for(i=0;i<20;i++)

//
//函数输入:学生成绩通过数组fChengJi传递进来,
// 同时还需要将学生人数传进来
//
//函数输出:函数返回时,数组fChengJi由大到小排序
// 即fChengJi[0]为最高分
// fChengJi[RenShu - 1]为最低分
//

void PaiXu(float *fChengJi, //数组fChengJi中是当前学生的成绩
int RenShu) //RenShu是需要统计成绩的人数
{
float fTmp;//fTmp是排序时使用的临时变量
char cFlag = 1;//cFlag是排序标志,= 1 表示需要排序,= 0 表示排序结束

do {
for(int i = 0; i < RenShu - 1; i++)
{
cFlag = 0;
if(fChengJi[i] < fChengJi[i + 1] )
{
fTmp = fChengJi[i];
fChengJi[i] = fChengJi[i + 1];
fChengJi[i + 1] = fChengJi[i];
cFlag = 1;
}
}
}while (cFlag);

}