输入N个学生的姓名和语文成绩,排出名次,并且输出每个学生的姓名。
【输入格式】
输入第一行:N,表示N个学生。(0<n<60)
第二N+1行:两个变量,A,姓名,B学生成绩
【输出格式】
输入N行,按学生成绩由高到低输出,每行输出学生名次、姓名和成绩
一个简单的实现,供参考:
#include <stdio.h>
#include <string.h>
int main(void){
int n;
char name[60][10]; //N个学生姓名的数组
int chinese[60]; //N个学生的语文成绩
scanf("%d",&n);
printf("n=%d\n",n);
int i;
//依次读入N个学生的姓名和语文成绩
for(i=0;i<n;i++){
scanf("%s %d",name[i],&chinese[i]);
// printf("name[%d]=%s,chinese[%d]=%d\n",i,name[i],i,chinese[i]);
}
//排序成绩
int j;
int temp;
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
//交换成绩和姓名
if(chinese[i]<chinese[j]){
temp= chinese[i];
chinese[i] = chinese[j];
chinese[j] =temp;
strcpy(name[i],name[j]);
}
}
}
for(i=0;i<n;i++){
printf("第%d名:%s,%d分。\n",i+1,name[i],chinese[i]);
}
return 0;
}