C语言程序设计 (江宝钏 著) 清华大学出版社 第9章习题答案(1) 下载本文

内容发布更新时间 : 2024/5/22 19:08:14星期一 下面是文章的全部内容请认真阅读。

习题9 答案

第5 题:

#include

void infoinput(struct student* st,int num); void levelcount(struct student* st,int num); //定义一个结构student 表示学生基本情况 struct student{ char stuno[20]; char stuname[20]; double cgrade; char gradelevel; };

int main(){

struct student ss[100]; //根据题意,一个班学生人数不超过100 个 int snum=0;

while (snum<=0||snum>100){

printf(\请输入班级的学生数n<=100:\scanf(\}

infoinput(ss,snum); levelcount(ss,snum); return 0; }

//输入基本数据

void infoinput(struct student* st,int num){ int i=0;

while(i

printf(\请输入学生 的学号、姓名、计算机成绩:\scanf(\while (st[i].cgrade<0||st[i].cgrade>100){

printf(\请输入学生 的计算机成绩[0-100]:\scanf(\}

if (st[i].cgrade>=90) st[i].gradelevel='A'; else if(st[i].cgrade>=70) st[i].gradelevel='B'; else if(st[i].cgrade>=60) st[i].gradelevel='C'; else st[i].gradelevel='D'; i++; } }

//统计等级人数

void levelcount(struct student* st,int num){ int levelA=0,levelB=0,levelC=0,levelD=0;

int i;

for(i=0;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\}

第6 题:

#include #include void finit(); void fcreat(); void fdelete(); void fupdate(); void ffind(); //定义日期

struct date{int year;int month;int day;}; //定义一个结构student 表示学生基本情况 struct llist{ char name[20];

struct date birthday; char homeno[10]; char mobileno[20]; };

struct llist addlist[50]; //如果不用链表做,假设:

//通讯录每个位置记录一个联系人信息

//如果某位置联系人姓名信息为空,表示该位置无联系人 int main(){ int menuno=0; while (1){

printf(\请选择操作功能:\\n\printf(\新建:\\n\printf(\删除:\\n\printf(\修改:\\n\printf(\查询:\\n\printf(\退出:\\n\scanf(\switch(menuno){

case 1:fcreat();break; case 2:fdelete();break; case 3:fupdate();break; case 4:ffind();break; case 5:return 0;

default:printf(\错误选项,请重新选择!\\n\}; }

return 0; }

void finit(){ int i;

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,\} }

void fcreat(){ int i;

char oname[20]; int oyear; int omonth; int oday;

char ohomeno[10]; char omobileno[20];

printf(\请输入联系人信息姓名、出生年、月、日、家庭电话、手机号:\\n\scanf(\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\