C语言期末总结
结构体
例10.4 指向结构体数组的指针的应用 #include struct student{ int num;char name[20];char sex;int age;}; struct student stu[3]={{10101,″Li Lin″,′M′,18},{10102,″Zhang Fun″,′M′,19},{10104,″WangMing″,′F′,20}};void main(){ struct student *p; printf(″No. Name sex age\n″); for(p=stu;p<stu+3;p++) printf(″%5d %-20s %2c %4d\n″,p->num,p->name,p->sex,p->age); }
运行结果:
No. Name sex age
10101 LiLin M 18
10102 Zhang Fun M 19
10104 WangMing F 20
例10.5 有一个结构体变量stu,内含学生学号、姓名和3门课程的成绩。要求在main函数中赋予值,在另一函数print中将它们输出。今用结构体变量作函数参数。
#include #include #define FORMAT ″%d\n%s\n%f\n%f\n%f\n″struct student{ int num; char name[20]; float score[3]; };#include #include #define FORMAT ″%d\n%s\n%f\n%f\n%f\n″struct student{ int num; char name[20]; float score[3]; };void main(){ void print(struct student); struct student stu; stu.num=12345; strcpy(stu.name,″LiLin″); stu.score[0]=67.5; stu.score[1]=89; stu.score[2]=78.6; print(stu); }void print(struct student stu){ printf(FORMAT,stu.num,stu.name, stu.score[0],stu.score[1],stu.score[2]); printf(″\n″);}
运行结果:
12345
Li Li
67.500000
89.000000
78.599998
例10.6 将上题改用指向结构体变量的指针作参数。 #include struct student{ int num; char name[20]; float score[3]; }stu={12345, ″LiLi″,67.5,89,78.6};void main(){ void print(struct student *); print(&stu);} void print(struct student *p) { printf(FORMAT,p->num,p->name,p->score[0],p->score[1],p->score[2]); printf(″\n″);}
运行结果:
12345
Li Li
67.500000
89.000000
78.599998
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程总成绩、平均分数)。
10.1:# include
struct student
{ char num[6];
char name[8];
int score[3];
float avr;
}stu[10];
main()
{ int i,j,max=0,maxi=0,sum=0;
float average=0;
for(i=0;i<10;i++)
{ scanf(“%s%s”,stu[i].num,stu[i].name);
for(j=0;j<3;j++)
scanf(