C语言程序设计第3版何钦铭 颜 晖 第9章 结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
第9章结构
【练习9-1】定义一个能够表示复数的结构类型,一个复数包括实数与虚数两个部分。
解答:
struct complex{
float real;
float imaginary;
};
【练习9-2】人的出生日期由年、月、日组成,请在例 9-1 中的通讯录结构中增加一个成员:出生日期,用嵌套定义的方式重新定义该结构类型。
解答:
struct date{
int year;
int month;
int day;
};
struct student{
int num;
char name[10];
struct date birthday;
int computer,english,math;
整理版.
.
double average;
};
【练习9-3】例 9-1 中,如果要计算的是三门课程的课程平均成绩,应该如何改写程序?
解答:
#include
struct student{
int num;
char name[10];
int computer,english,math;
double average;
};
int main(void)
{
int i, n;
double math_sum,english_sum,computer_sum;
struct student s1;
printf(Input n:);
scanf(%d, &n);
printf(Input the student's number, name and course scores:\n);
math_sum=english_sum=computer_sum=0;
for(i=1;i<=n;i++){
整理版.
.
printf(No.%d:,i);
scanf(%d%s%d%d%d,&s1.num,,&s1.math,&s1.english,&puter); math_sum+=s1.math;
english_sum+=s1.english;
computer_sum+=puter;
}
printf(math_ave:%.2lf\nenglish_ave:%.2lf\ncomputer_ave:%.2lf\n,math_s um/n,english_sum/n,computer_sum/n);
return 0;}并对该结构数组的所有元定义一个包含名学生信息的结构数组,5 【练习9-4】素进行初始化。解答:struct student{ int num;
char name[10];int computer, english, math;
};231,132, 李二张一student struct s[5]={{30101, ,69,75,84
426, 刘五,81,92,73}};王三754, 赵四
【练习9-5】参考例 9-2,输入并保存 10 个学生的成绩信息,分别输出平均成
整理版.
.
绩最高和最低的学生信息。
解答:
#include
struct student{
int num;
char name[10];
int computer,english,math;
double average;
};
int main(void)
{
int i,n,max,min;
struct student students[50];
printf(Input n:);
scanf(%d,&n);
for(i=0;i printf(Input the info of No.%d:\n,i+1); printf( umber:); scanf(%d,&students[i].num); printf( ame:); scanf(%s,&students[i].name); printf(math score:); 整理版. . scanf(%d,&students[i].math); printf(english score:); scanf(%d,&students[i].english); printf(computer score:); scanf(%d,&students[i].computer); students[i].average=(students[i].math+students[i].english+students[i] .computer)/3.0; } max=min=0; for(i=1;i if(students[max].average if(students[min].average>students[i].average) min=i; } printf(max_average_infortmation:\n); printf( umber:%d,name:%s,math:%d,english:%d,computer:%d,average:%.2lf\n,stude nts[max].num,students[max].name,students[max].math,students[max].engl ish,students[max].computer,students[max].average); printf(min_average_information:\n); printf( umber:%d,name:%s,math:%d,english:%d,computer:%d,average:%.2lf\n,stude nts[min].num,students[min].name,students[min].math,students[min].engl ish, students[min].computer, students[min].average); return 0; 整理版. . } 【练习9-6】定义一个 struct student 类型的结构指针,用其实现一个学生信息的输入和输出。 解答: struct student{ /* 学生信息结构定义 */ int num; /* 学号 */ char name[10]; /* 姓名 */ int computer, english, math ; /* 三门课程成绩 */