声明:该编译器为vs,所以输入函数写为scanf_s形式!
代码如下:
#include <stdio.h>
#define N 40
int ReadScore(int score[]);//函数原型;
void DataSort(int score[], int n);//函数原型;
void PrintfScore(int score[], int n);//函数原型;
int main() {
int score[N], n;
n = ReadScore(score);
printf("Total students are %d\n", n);
DataSort(score, n);
printf("Sorted scores:\n");
PrintfScore(score, n);
return 0;
}
//函数功能:读入该门课的成绩:
int ReadScore(int score[]) {
int i = -1;
printf("Input score:\n");
do {
i++;
scanf_s("%d", &score[i]);
} while (score[i] >= 0);
return i;
}
//函数功能:将该门课的成绩按照高低排序;
void DataSort(int score[], int n) {
int i, j, temp,k;
for (i = 0; i < n - 1; i++) {
k = i;
for (j = i + 1; j < n; j++) {
if (score[j] > score[k]) {
k = j;//记录最大的下标位置
}
}
if (k != i) {//若最大数的下标位置不在下标位置i;
temp = score[k];
score[k] = score[i];
score[i] = temp;
}
}
}
//函数功能:打印该门课的成绩;
void PrintfScore(int score[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("%4d", score[i]);
}
printf("\n");
}
运行结果如下: