.
第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
int computer,english,math; double average; };
int main(void) { int i, n;
double math_sum,english_sum,computer_sum; struct student s1;
printf(\ scanf(\
printf(\ math_sum=english_sum=computer_sum=0; for(i=1;i<=n;i++){
整理版
.
printf(\
scanf(\ math_sum+=s1.math; english_sum+=s1.english; computer_sum+=s1.computer; }
printf(\english_sum/n,computer_sum/n);
return 0; }
【练习9-4】定义一个包含 5 名学生信息的结构数组,并对该结构数组的所有元素进行初始化。 解答: struct student{ int num;
char name[10];
int computer, english, math; };
struct student s[5]={{30101, \张一\ },{30132, \李二\ \王三\\赵四\\刘五\
【练习9-5】参考例 9-2,输入并保存 10 个学生的成绩信息,分别输出平均成
整理版
.
绩最高和最低的学生信息。 解答:
#include
int computer,english,math; double average; };
int main(void) {
int i,n,max,min;
struct student students[50];
printf(\ scanf(\ for(i=0;i printf(\ printf(\ scanf(\ printf(\ scanf(\ printf(\ 整理版 . scanf(\ printf(\ scanf(\ printf(\ scanf(\ 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 printf(\ printf(%udents[max].num,students[max].name,students[max].math,students[max].english,students[max].computer,students[max].average); printf(\ printf(%udents[min].num,students[min].name,students[min].math,students[min].english, students[min].computer, students[min].average); return 0; 整理版
相关推荐: