64.
编程题
编写main函数,声明结构数组a、b并用测试数据初始化(a、b数组中数据按成员id值升序存储;显示a,b数组中数据(显示数组数据调用display函数完成,下同);调用delete函数从a数组中删除在b数组中重复出现的联系人信息,显示a数组中数据;调用merge函数将a数组中全部联系人信息合并到b数组,显示b数组中数据;调用sort函数对a数组中数据排序,显示a数组中数据。
【测试数据】
a数组:{101, "tom","m"},{103,"mary","f"},{104,"mark","m"},
{105,"julia","f"},{106, "sara","f"}
b数组: {102, "mark","m"},{104,"mark","m"}
【输出结果】
a:
ID NAME SEX
101 tom m
103 mary f
104 mark m
105 julia f
106 sara f
b:
ID NAME SEX
102 mark m
104 mark m
a:
ID NAME SEX
101 tom m
103 mary f
105 julia f
106 sara f
b:
ID NAME SEX
101 tom m
102 mark m
103 mary f
104 mark m
105 julia f
106 sara f
a:
ID NAME SEX
105 julia f
103 mary f
106 sara f
101 tom m
请认真测试程序的正确性。将源代码以文本方式提交,不要直接提交文件。
C语言编程题 编写main函数,声明结构数组a、b并用测试数据初始化
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qtchen_1988 2020-05-18 18:52关注
#include <iostream> #include <string.h> #include <algorithm> using namespace std; struct Stu{ int id; char name[20]; char sex[2]; }; void display(Stu stu[],int n) { printf("ID NAME SEX\n"); int i; for(i=0;i<n;i++) printf("%d %s %s\n",stu[i].id,stu[i].name,stu[i].sex); } void del(Stu a[],Stu b[],int na,int nb) { int i,j,idx=-1; Stu temp[7]; memset(temp,0x0,sizeof(temp)); for(i=0;i<nb;i++) for(j=0;j<na;j++) { if(a[j].id == b[i].id && (strcmp(a[j].name,b[i].name)==0) && (strcmp(a[j].sex,b[i].sex)==0)) { idx = j; break; } } if(idx != -1) { for(i=0;i<(na-1);i++) { if(i >= idx) a[i] = a[i+1]; } } memset(&a[i],0x0,sizeof(a[i])); } bool cmp(Stu a,Stu b) { return a.id<b.id; } bool cmp2(Stu a,Stu b) { return (strcmp(a.name,b.name) < 0); } void merge(Stu a[],Stu b[],int na,int nb) { int i; for(i=0;i<na;i++) b[i+nb] = a[i]; sort(b,b+(na+nb),cmp); } void sort(Stu stu[],int n) { sort(stu,stu+n,cmp2); } int main(){ Stu a[7] = {{101, "tom","m"},{103,"mary","f"},{104,"mark","m"}, {105,"julia","f"},{106, "sara","f"}},b[7]={{102, "mark","m"},{104,"mark","m"}}; printf("a:\n"); display(a,5); printf("\nb:\n"); display(b,2); del(a,b,5,2); printf("\na:\n"); display(a,4); merge(a,b,4,2); printf("\nb:\n"); display(b,6); sort(a,4); printf("\na:\n"); display(a,4); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?
- ¥15 matlab(相关搜索:紧聚焦)
- ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
- ¥15 路易威登官网 里边的参数逆向
- ¥15 Arduino无法同时连接多个hx711模块,如何解决?
- ¥50 需求一个up主付费课程