7-2 通讯录排序 分数 10 作者 C课程组 单位 浙江大学 输入n个朋友的信息,包括姓名、生日、电话号码,本题要求用C语言编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。 输入格式: 输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。 输出格式: 按照年龄从大到小输出朋友的信息,格式同输出。 输入样例: 3 zhang 19850403 13912345678 wang 19821020 +86-0571-88018448 qian 19840619 13609876543 输出样例: wang 19821020 +86-0571-88018448 qian 19840619 13609876543 zhang 19850403 13912345678
以下是解决该问题的C语言代码: ```c #include <stdio.h> #include <string.h> // 定义朋友信息的结构体 typedef struct { char name[11]; int birthday; char phone[18]; } Friend; // 交换两个朋友信息的函数 void swap(Friend *a, Friend *b) { Friend temp = *a; *a = *b; *b = temp; } // 冒泡排序函数,按照生日从小到大排序(年龄从大到小) void bubbleSort(Friend friends[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (friends[j].birthday > friends[j + 1].birthday) { swap(&friends[j], &friends[j + 1]); } } } } int main() { int n; // 读取朋友的数量 scanf("%d", &n); Friend friends[10]; // 读取每个朋友的信息 for (int i = 0; i < n; i++) { scanf("%s %d %s", friends[i].name, &friends[i].birthday, friends[i].phone); } // 对朋友信息按照生日排序 bubbleSort(friends, n); // 输出排序后的朋友信息 for (int i = 0; i < n; i++) { printf("%s %d %s\n", friends[i].name, friends[i].birthday, friends[i].phone); } return 0; } ``` 代码说明: 1. 结构体定义:定义了一个名为`Friend`的结构体,用于存储朋友的姓名、生日和电话号码。 2. 交换函数:`swap`函数用于交换两个`Friend`结构体变量的值。 3. 冒泡排序函数:`bubbleSort`函数使用冒泡排序算法对朋友信息按照生日从小到大进行排序,即年龄从大到小排序。 4. 主函数: - 读取朋友的数量`n`。 - 读取每个朋友的信息并存储在`friends`数组中。 - 调用`bubbleSort`函数对朋友信息进行排序。 - 输出排序后的朋友信息。 复杂度分析: - 时间复杂度:$O(n^2)$,主要是由于使用了冒泡排序算法。 - 空间复杂度:$O(n)$,主要用于存储朋友的信息。 [2025-12-11 11:24:48 | AI问答 | 604点数解答]
- [字节豆包] 7-2 通讯录排序 分数 10 作者 C课程组 单位 浙江大学 输入n个朋友的信息,包括姓名、生日、电话号码,本题要求用C语言编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。 输入格式: 输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。 输出格式: 按照年龄从大到小输出朋友的信息,格式同输出。 输入样例: 3 zhang 19850403 13912345678 wang 19821020 +86-0571-88018448 qian 19840619 13609876543 输出样例: wang 19821020 +86-0571-88018448 qian 19840619 13609876543 zhang 19850403 13912345678(604点数解答 | 2025-12-11 11:24:48)123
- [字节豆包] 样例输入: 1 520021910437 99 100 98 zhang san 1 520021910438 99 100 92 zhang san 1 520021910439 90 100 94 li si 1 520021910440 90 100 94 wang wu 2 520021910437 89 100 94 zhang san 3 520021910430 4 520021910437 5 zhang san 6 7 0 样例输出(此处增加了换行以方便解释): 520021910437 zhang san 89 100 94 520021910437 zhang san 89 100 94 520021910438 zhang san 99 100 92 520021910437 zhang san 89 100 94 520021910438 zhang san 99 100 92 520021910439 li si 90 100 94 520021910440 wang wu 90 100 94 520021910438 zhang san 99 100(28点数解答 | 2024-12-12 11:56:59)378
- [GPT] 帮我优化一下这个sql, 得到的结果是一样的 select to_char(sysdate, 'yyyymmdd') from dual union select to_char(sysdate-1, 'yyyymmdd') from dual union select to_char(sysdate-2, 'yyyymmdd') from dual union select to_char(sysdate-3, 'yyyymmdd') from dual union select to_char(sysdate-5, 'yyyymmdd') from dual(357点数解答 | 2024-08-14 20:08:27)393
- [GPT] 我想得到最近30天内的日期, 比如这样的sql, 但太冗余了, 有没有简化的办法, oracle库里执行: select to_char(sysdate, 'yyyymmdd') from dual union select to_char(sysdate-1, 'yyyymmdd') from dual union select to_char(sysdate-2, 'yyyymmdd') from dual union select to_char(sysdate-3, 'yyyymmdd') from dual union select to_char(sysdate-5, 'yyyymmdd') from dual(320点数解答 | 2024-08-14 20:11:26)246
- [字节豆包] 7-5 计算职工工资 分数 10 作者 C课程组 单位 浙江大学 给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 输入格式: 输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。 输出格式: 按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。 输入样例: 3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80 输出样例: zhao 565.00 qian 430.00 zhou 630.00(169点数解答 | 2025-12-11 23:35:16)20
- [字节豆包] 7-5 计算职工工资 分数 10 作者 C课程组 单位 浙江大学 给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 输入格式: 输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。 输出格式: 按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。 输入样例: 3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80 输出样例: zhao 565.00 qian 430.00 zhou 630.00用C语言写(238点数解答 | 2025-12-11 23:42:46)20
- [字节豆包] 7-5 计算职工工资 分数 10 作者 C课程组 单位 浙江大学 给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 输入格式: 输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。 输出格式: 按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。 输入样例: 3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80 输出样例: zhao 565.00 qian 430.00 zhou 630.00 c语言(281点数解答 | 2025-12-12 20:21:11)51
- [字节豆包] 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(385点数解答 | 2025-01-08 03:43:54)427
- [字节豆包] 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(346点数解答 | 2025-01-08 03:46:29)423
- [字节豆包] 学生具有姓名、年龄、生日等属性(这些学生均为15岁),有学习的能力 要求: ①定义一个学生类,描述班级学生的班级、姓名、年龄、生日这些属性(私有) ②定义一个可以通过类名来调用学生学习的方法 ③编写测试类通过类名调用学习方法(输出格式如下) 好好学习,天天向上 ④创建两个学生对象张三和李四,在控制台输出学员的信息(输出格式如下) 张三,15岁,生日:9月12日 李四,15岁,生日:9月15日(236点数解答 | 2024-09-18 16:15:05)205
- [字节豆包] 一、试编写以下类(请注意各成员的权限修饰符,请尝试测试各权限修饰符的作用): 1.建包gc,有以下两个类: (1)公共测试类test_inherit,要求: 生成一个教师:张老师,35岁,女,副教授,打印输出其信息;修改职称为“教授”,再输出信息 生成一个学生:张恒,19岁,男,工程技术学院,打印输出其信息;修改school为“湖北工业大学工程技术学院”,并再次输出信息。 (2)父类person:姓名、年龄、性别(思考1:如果不允许将属性设置为public,那么此处设置为何种权限比较合适;思考2:将属性设置成私有的是否合适?)。 方法: ① 构造方法:要求:两个。一个无形参;一个有形参,利用形参为其成员赋值。 ② 设置及获取姓名、年龄、性别的方法。 ③ 方法info():打印输出姓名、年龄、性别的方法。 2.包gc.zg,有类teacher:继承自person,增加私有成员变量“职称”rank。 方法: ① 构造方法:为姓名、年龄、性别、职称赋值。 ② 重写父类方法info:打印输出教师的所有信息,其中姓名、年龄和性别可调用父类的info()方法,体会继承的好处。(思考:该方(745点数解答 | 2024-10-16 18:40:42)366
- [字节豆包] 6-2 有结构文件的读写1 分数 10 作者 龚雄兴 单位 湖北文理学院 学生类型:ST的类型定义如下: typedef struct student{ char name[10],id[10]; int gender; int age; double scored; } ST; 编写函数,从指定的文件上读入若干字符串,每行字符串是一个学生的信息(姓名,学号,性别,年龄,分数)的字符串表示,数据间以空格分隔,将学生们的信息存储于一个结构体中,并利用output()函数输出到指定文件中。 函数接口定义: void fun(FILE *fin,FILE *fout); 其中 fin 和 fout 都是用户传入的参数。 前者是已正常打开的可读文件,而后者是已正常打开的可写文件。 裁判测试程序样例: 在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> #include <stdlib.h> typedef struct student{ char name[10],id[10]; int gender; int age; do(211点数解答 | 2025-12-25 16:00:51)33