C语言程序设计 (江宝钏 著) 清华大学出版社 第9章习题答案_第1页
C语言程序设计 (江宝钏 著) 清华大学出版社 第9章习题答案_第2页
C语言程序设计 (江宝钏 著) 清华大学出版社 第9章习题答案_第3页
C语言程序设计 (江宝钏 著) 清华大学出版社 第9章习题答案_第4页
C语言程序设计 (江宝钏 著) 清华大学出版社 第9章习题答案_第5页
已阅读5页,还剩2页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题9答案第5题:#include<stdio.h>voidinfoinput(structstudent*st,intnum);voidlevelcount(structstudent*st,intnum);//定义一个结构student表示学生基本情况structstudent{charstuno[20];charstuname[20];doublecgrade;chargradelevel;};intmain(){structstudentss[100];//根据题意,一个班学生人数不超过100个intsnum=0;while(snum<=0||snum>100){printf("请输入班级的学生数n<=100:");scanf("%d",&snum);}infoinput(ss,snum);levelcount(ss,snum);return0;}//输入基本数据voidinfoinput(structstudent*st,intnum){inti=0;while(i<num){printf("请输入学生%1d的学号、姓名、计算机成绩:",i+1);scanf("%s%s%lf",st[i].stuno,st[i].stuname,&st[i].cgrade);while(st[i].cgrade<0||st[i].cgrade>100){printf("请输入学生%1d的计算机成绩[0-100]:",i+1);scanf("%lf",&st[i].cgrade);}if(st[i].cgrade>=90)st[i].gradelevel='A';elseif(st[i].cgrade>=70)st[i].gradelevel='B';elseif(st[i].cgrade>=60)st[i].gradelevel='C';elsest[i].gradelevel='D';i++;}}//统计等级人数voidlevelcount(structstudent*st,intnum){intlevelA=0,levelB=0,levelC=0,levelD=0;inti;for(i=0;i<num;i++){switch(st[i].gradelevel){case'A':levelA++;break;case'B':levelB++;break;case'C':levelC++;break;case'D':levelD++;break;};}printf("统计结果:A:%d人,B:%d人,C:%d人,D:%d人\n",levelA,levelB,levelC,levelD);}第6题:#include<stdio.h>#include<string.h>voidfinit();voidfcreat();voidfdelete();voidfupdate();voidffind();//定义日期structdate{intyear;intmonth;intday;};//定义一个结构student表示学生基本情况structllist{charname[20];structdatebirthday;charhomeno[10];charmobileno[20];};structllistaddlist[50];//如果不用链表做,假设://通讯录每个位置记录一个联系人信息//如果某位置联系人姓名信息为空,表示该位置无联系人intmain(){intmenuno=0;while(1){printf("\n请选择操作功能:\n");printf("[1]新建:\n");printf("[2]删除:\n");printf("[3]修改:\n");printf("[4]查询:\n");printf("[5]退出:\n");scanf("%d",&menuno);switch(menuno){case1:fcreat();break;case2:fdelete();break;case3:fupdate();break;case4:ffind();break;case5:return0;default:printf("错误选项,请重新选择!\n");};}return0;}voidfinit(){inti;for(i=0;i<50;i++){strcpy(addlist[i].name,"");addlist[i].birthday.year=0;addlist[i].birthday.month=0;addlist[i].birthday.day=0;strcpy(addlist[i].homeno,"");strcpy(addlist[i].mobileno,"");}}voidfcreat(){inti;charoname[20];intoyear;intomonth;intoday;charohomeno[10];charomobileno[20];printf("请输入联系人信息姓名、出生年、月、日、家庭电话、手机号:\n");scanf("%s%d%d%d%s%s",oname,&oyear,&omonth,&oday,ohomeno,omobileno);for(i=0;i<50;i++){if(strlen(addlist[i].name)==0){strcpy(addlist[i].name,oname);addlist[i].birthday.year=oyear;addlist[i].birthday.month=omonth;addlist[i].birthday.day=oday;strcpy(addlist[i].homeno,ohomeno);strcpy(addlist[i].mobileno,omobileno);printf("已增加新联系人\n");break;}}if(i>=50)printf("通讯录满,无法增加新联系人\n");}voidfdelete(){inti;charoname[20];printf("请输入联系人姓名:\n");scanf("%s",oname);for(i=0;i<50;i++){if(strcmp(addlist[i].name,oname)==0){strcpy(addlist[i].name,"");addlist[i].birthday.year=0;addlist[i].birthday.month=0;addlist[i].birthday.day=0;strcpy(addlist[i].homeno,"");strcpy(addlist[i].mobileno,"");printf("已删除该联系人%s\n",oname);break;}}if(i>=50)printf("无该联系人,无法删除\n");}voidfupdate(){inti;charoname[20];charnname[20];intnyear;intnmonth;intnday;charnhomeno[10];charnmobileno[20];printf("请输入联系人姓名:\n");scanf("%s",oname);printf("请输入联系人信息姓名、出生年、月、日、家庭电话、手机号:\n");scanf("%s%d%d%d%s%s",nname,&nyear,&nmonth,&nday,nhomeno,nmobileno);for(i=0;i<50;i++){if(strcmp(addlist[i].name,oname)==0){strcpy(addlist[i].name,nname);addlist[i].birthday.year=nyear;addlist[i].birthday.month=nmonth;addlist[i].birthday.day=nday;strcpy(addlist[i].homeno,nhomeno);strcpy(addlist[i].mobileno,nmobileno);printf("已修改联系人%s\n",nname);break;}}if(i>=50)printf("无该联系人,无法修改\n");}voidffind(){inti;charoname[20];printf("请输入联系人姓名:\n");scanf("%s",oname);for(i=0;i<50;i++){if(strcmp(addlist[i].name,oname)==0){printf("姓名:%s",addlist[i].name);printf("出生日期:%1d年%1d月%1d日",addlist[i].birthday.year,addlist[i].birthday.month,addlist[i].birthday.day);printf("家庭电话:%s",addlist[i].homeno);printf("手机:%s",addlist[i].mobileno);break;}}if(i>=50)printf("无该联系人\n");}第7题:#include<stdio.h>voidsalaryinput(structsalary*sl,intnum);voidsalarylist(structsalary*sl,intnum);structsalary{charid[20];charname[20];doublebase;doublemerit;doublesubsidiary;doubleinsurance;doubletax;doublereal;};intmain(){structsalaryss[100];//工资人数不超过100个intsnum=0;while(snum<=0||snum>100){printf("请输员工人数n<=100:");scanf("%d",&snum);}salaryinput(ss,snum);salarylist(ss,snum);return0;}voidsalaryinput(structsalary*sl,intnum){inti=0;while(i<num){printf("请输入员工%1d的编号、姓名、基本工资、绩效工资、津贴工资、保险:\n",i+1);scanf("%s%s%lf%lf%lf%lf",sl[i].id,sl[i].name,&sl[i].base,&sl[i].merit,&sl[i].subsidiary,&sl[i].insurance);sl[i].tax=(sl[i].base+sl[i].merit+sl[i].subsidiary)*0.05;sl[i].real=(sl[i].base+sl[i].merit+sl[i].subsidiary-sl[i].insurance-sl[i].tax);i++;}}voidsalarylist(structsalary*sl,intnum){inti;for(i=0;i<num;i++){printf("员工的编号、姓名、实发工资如下:",i+1);printf("%s%s%lf\n",sl[i].id,sl[i].name,sl[i].real);}}第8题:#include<stdio.h>#include<stdlib.h>voidlinkcreat();voidlinklist();structNode{chardata;structNode*link;};Node*snode=NULL,*tmpnode,*lastnode;intmain(){linkcreat();linklist();//最好增加一个释放链表的函数,为什么?return0;}voidlinkcreat(){charc;lastnode=snode;printf("请输入一行字符:\n");while(scanf("%c",&c),c!=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论