Description
对学生的年龄大小进行排序,学生信息包括,姓名(名字长度<10个字节),年龄,性别;
Input
输入第一行为一个整数N,代表学生的个数,(N<10000);
第二行至第N+1行为学生星系,每行为一个完整的学生信息,名字为小于10个字节的字母组成,年龄为整数,性别为一个字节的字符,’m’代表男生,’f’代表女生;
Output
按照学生的年龄从小到大输出,每行为一个学生的信息(名字,年龄,性别)
Sample Input
Zhangsan 20 m
Lisi 19 f
Wangwu 18 m
Sample Output
Wangwu 18 m
Lisi 19 f
Zhangsan 20 m
思路:1、定义结构体{名字,年龄,性别}
2、输入数据
3、排列年龄
4、按年龄输出
上代码:
#include<iostream>
using namespace std;
struct student {
char name[10] = {};//你猜猜这样写会不会导致输出“烫”?
int age;
char sex;
};//定义结构体
void input(student[], const int);
void Sort(student[], const int);
void Output(student[], const int);
//声明功能函数
int main() {
student a[10000];
int n;
cin >> n;
input(a, n);
Sort(a, n);
Output(a, n);
}
void input(student a[], const int n) {
int i = 0;
for (i; i < n; i++) {
cin >> a[i].name;
cin >> a[i].age;
cin >> a[i].sex;
}
}//输入
void Sort(student a[], const int n) {
int i;
int j;
student temp;
for (i = 0; i < n; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j].age > a[j + 1].age) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}//排序,这里用的是冒泡
void Output(student a[], const int n) {
for (int i = 0; i < n; i++) {
cout << a[i].name << " " << a[i].age << " " << a[i]. sex<<endl;
}
};//输出