姓名,分数,按分数排序
//
// main.c
// code_0
//
// Created by tqh on 2017/6/26.
// Copyright © 2017年 tqh. All rights reserved.
//
#include <stdio.h>
struct student
{
char name[21];
int score;
};//这里创建了一个结构体用来存储姓名和分数
int main(int argc, const char * argv[]) {
struct student a[100],t;
int n;
scanf("%d",&n); //输入一个数n
for(int i = 0;i < n;i ++){ //循环读入n个人名和分数
scanf("%s %d",a[i].name,&a[i].score);
}
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n - i; j++) {
if (a[j].score < a[j+1].score) {
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for (int i = 0; i < n; i ++) {
printf("\nname = '%s' score = '%d'\n",a[i].name,a[i].score);
}
return 0;
}
原理:双重循环,相邻的两个数比较大小,交换位置,时间复杂度高