用c语言写个程序:给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
时间: 2023-03-09 21:26:44 浏览: 155
可以这样写:#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
char name[n][20];
int score[n];
for (int i=0; i<n; i++) {
scanf("%s%d", name[i], &score[i]);
}
for (int i=0; i<n-1; i++) {
for (int j=i+1; j<n; j++) {
if (score[j] > score[i]) {
int temp = score[i];
score[i] = score[j];
score[j] = temp;
char temp_name[20];
strcpy(temp_name, name[i]);
strcpy(name[i], name[j]);
strcpy(name[j], temp_name);
} else if (score[i] == score[j]) {
if (strcmp(name[i], name[j]) > 0) {
char temp_name[20];
strcpy(temp_name, name[i]);
strcpy(name[i], name[j]);
strcpy(name[j], temp_name);
}
}
}
}
for (int i=0; i<n; i++) {
printf("%s %d\n", name[i], score[i]);
}
return 0;
}