从键盘输入某班学生某门课程的成绩, (假设每班人数最多不超过40人),当输入成绩为负值时,表示输入结束 试编程将分数从高到低排序。用函数功能实现排序功能

在这里插入图片描述

/*从键盘输入某班学生某门课程的成绩, 
(假设每班人数最多不超过40人),当输入成绩为负值时,表示输入结束 
试编程将分数从高到低排序。用函数功能实现排序功能*/
#include<stdio.h>
#define N 40
int readscore(int score[]);/*readscore()函数原型*/
void datasort(int score[],int n);/*datasort()函数原型*/
void printscore(int score[],int n);/*printfscore()函数原型*/
/*以上这么写的目的是:语法规则*/
main()
{	int score[N],n;
	n=readscore(score);/*调用函数readscore()输入成绩,返回学生人数*/
	printf("总学生数是:%d\n",n);
	datasort(score,n);/*调用函数datascore()进行成绩排序*/
	printf("成绩分数:");
	printscore(score,n);/*调用函数printscore()输出成绩排序结果*/
	return 0; 	 
 }
 /*函数功能:输入学生某门课的成绩,当输入成绩为负值时,结束输入,返回学生人数*/
 int readscore(int score[])/*readscore()函数定义*/
 {	int i=-1;/*i初始化为-1,可保证循环体内i增1后数组下标从0开始*/
 	do{
 		i++;
 		printf("请输入成绩:");
 		scanf("%d",&score[i]); 
	 } while(score[i]>=0);/*输入负值时结束输入*/
	 return i;/*返回学生人数*/ 
  } 
/*函数功能:按交换法将数组score的元素排序*/
void datasort(int score[],int n)/*datascort()函数定义*/
{	int i,j,temp;
	for(i=0;i<n-1;i++)
	{	for(j=i+1;j<n;j++)
		{	if(score[j]>score[i])/*按数组score的元素值从高到低排序*/
			{	temp=score[j];
				score[j]=score[i];
				score[i]=temp;
			 } 
		}
	}
 } 
 /*函数功能:打印学生成绩*/
 void printscore(int score[],int n)/*printfscore()函数定义*/
 {	int i;
 	for(i=0;i<n;i++)
 	{	printf("%4d",score[i]);
	 }
	 printf("\n");
  }

猜你喜欢

转载自blog.csdn.net/YJG7D314/article/details/89077790
今日推荐