题目来自C语言从入门到精通第三版:使用字符数组和实型数组分别存储学生姓名和成绩,并通过对学生成绩的排序,按照名次输出字符数组中对应的学生姓名
在网上大致找了一下没有看到C语言实现的版本,于是自己写了一个。对这个题目的要求并不是很明确,题目中的使用字符数组和实型数组分别存储学生姓名和成绩到底是直接通过代码预先储存到相应的字符数组中,还是要通过gets()函数或scanf_s()函数获取字符串再储存。因为是作为学习理解过程,所以我直接按照先获取学生姓名,成绩,再储存到相应数组中,然后对成绩排序,最后按分数从低到高输出姓名与成绩。
先附上全部代码,再对其中的一些函数作解释:
#include <stdio.h>
#include <string.h>
#define N 1000
char name[N][N];
char temp_name[N]; //作用类似于temp,作为交换字符数组中字符位置的中间变量
int temp; //作为排序时交换次序的中间变量
int score[N]; //将成绩定义为一个数组
int i,j = 0;
int length; //输入总人数
int main()
{
printf("总人数:\n");
scanf("%d",&length);
for(i = 0;i < length