编写一个程序,读入n个用户姓名和电话号码,按姓名的字典顺序排列后,输出用户的姓名和电话号码,n从键盘输入。
样例:
输入:
3
张 122
王 233
李 567
输出:
李 567
王 233
张 122
#include<stdio.h>
#include<string.h>
struct person {
char name[20];
char phonenumber[40];
};
int main() {
struct person men[200];
int num;
scanf("%d", &num);
for (int i = 0; i < num; i++) {
scanf("%s", men[i].name);
scanf("%s", men[i].phonenumber);
}
//排序
struct person temp;
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num-1-i; j++) {
if (strcmp(men[j].name, men[j+1].name) > 0) {
temp = men[j];
men[j] = men[j+1];
men[j+1] = temp;
}
}
}for (int i = 0; i < num; i++) {
printf("%s %s\n", men[i].name, men[i].phonenumber);
}
return 0;
}
2.有n名学生,每个学生的数据包含学号、姓名、三门课的成绩。可以从键盘输入n个学生的数据,按总成绩从小到大排序,打印包含学号、姓名、三门课成绩和总成绩的成绩单。(测试时,数据从键盘输入。)
输入:第1行为整数n,后面n行表示n个人的信息,包括学号、姓名、和三门课的成绩,每行的数据间用空格隔开。
输出:n行,表示n个人的信息,包括学号、姓名、三门课的成绩和总成绩,数据间一个空格,末尾无空格。
样例:
输入:
2
2021001 li 60 80 70
2021002 wang 100 90 80
输出:
2021001 li 60 70 80 210
2021002 wang 100 90 80 270
#include<stdio.h>
#include<string.h>
struct person {
char xuehao[20];
char name[20];
int a, b, c;
int sum;
};
int main() {
struct person men[200];
int num;
scanf("%d", &num);
for (int i = 0; i < num; i++) {
scanf("%s %s", men[i].xuehao, men[i].name);
scanf("%d %d %d", &men[i].a, &men[i].b, &men[i].c);
men[i].sum = men[i].a + men[i].b + men[i].c;
}
//排序
struct person temp