/*
交换法排序——————将班级学生人数少于40的成绩0---100分进行从高到低排序
*/
#include<stdio.h>
#define N 40 //定于N的数组内存
int ReadScore(int score[]) //读取学生成绩,当输入不是0--100的时候结束输入
{
int i = -1; //初始化i,下标从0开始
do{
i++;
printf("输入分数:");
scanf("%d",&score[i]);
}while(score[i] >= 0 && score[i] <= 100); //判断输入是否结束
return i; //返回人数
}
/****************
交换法排序算法:
for(i=0;i<=n-1;i++)
{
for(j=i+1;j<n;j++)
{
若score[j]>score[i]
交换俩值
}
}
********************/
void DataScore(int score[],int n) //交换发排序算法
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(score[j]>score[i]) //数组从高到底排序
{
temp = score[j];
score [j] =score[i];
score [i] = temp;
}
}
}
}
void PrinfScore(int score[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%4d",score[i]);
}
printf("\n");
}
int main()
{
int score[N],n;
n = ReadScore(score);
printf("学生总数是:%d\n",n);
DataScore(score,n);
printf("分数排序:");
PrinfScore(score,n);
return 0;
交换法排序——————将班级学生人数少于40的成绩0---100分进行从高到低排序
*/
#include<stdio.h>
#define N 40 //定于N的数组内存
int ReadScore(int score[]) //读取学生成绩,当输入不是0--100的时候结束输入
{
int i = -1; //初始化i,下标从0开始
do{
i++;
printf("输入分数:");
scanf("%d",&score[i]);
}while(score[i] >= 0 && score[i] <= 100); //判断输入是否结束
return i; //返回人数
}
/****************
交换法排序算法:
for(i=0;i<=n-1;i++)
{
for(j=i+1;j<n;j++)
{
若score[j]>score[i]
交换俩值
}
}
********************/
void DataScore(int score[],int n) //交换发排序算法
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(score[j]>score[i]) //数组从高到底排序
{
temp = score[j];
score [j] =score[i];
score [i] = temp;
}
}
}
}
void PrinfScore(int score[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%4d",score[i]);
}
printf("\n");
}
int main()
{
int score[N],n;
n = ReadScore(score);
printf("学生总数是:%d\n",n);
DataScore(score,n);
printf("分数排序:");
PrinfScore(score,n);
return 0;
}