欢迎来到天天文库
浏览记录
ID:2036712
大小:2.19 MB
页数:9页
时间:2017-11-14
《实验十 结构体和共用体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验十结构体和共用体1、实验目的(1)掌握结构体类型变量的定义和使用;(2)掌握结构体类型数组的概念和使用;(3)掌握链表的概念,初步学会对链表进行操作;(4)掌握共用体的概念与使用。2、实验内容编程序,然后上机调试运行。 (1)有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。所编写程序为:#include#defineN10structstudent{charnum[6];charname[
2、8];floatscore[3];floatavr;}stu[N];voidmain(){inti,j,maxi;floatsum,max,average;for(i=0;i3、score[j]);}}average=0;max=0;maxi=0;for(i=0;imax){max=sum;maxi=i;}}average/=N;printf("No.namescore1score2score3average");for(i=0;i4、ame);for(j=0;j<3;j++)printf("%9.2f",stu[i].score[j]);printf("%8.2f",stu[i].avr);}printf("average=%5.2f",average);printf("Thehighestscoreis:student%s,%s.",stu[maxi].num,stu[maxi].name);printf("Hisscoresare:%6.2f,%6.2f,%6.2f,average:%5.2f.",stu[maxi].score[0],stu[ma5、xi].score[1],stu[maxi].score[2],stu[maxi].avr);}运行结果如下:(2)13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。所编写程序为:#include#defineN13structperson{intnumber;intnextp;}link[N+1];voidmain(){inti,count,h;for(i=1;i<=N;i++){if(i==N)link[i].nextp=1;elselink[i].next6、p=i+1;link[i].number=i;}printf("");count=0;h=N;printf("sequencethatpersonsleavethecircle:");while(count7、[i].number)printf("%3d",link[i].number);printf("");}运行结果如下:(3)建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。所编写程序为:#include#include#defineLENsizeof(structstudent)structstudent{charnum[6];charname[8];charsex[2];intage;structstudent*next;8、}str[10];voidmain(){structstudent*p,*pt,*head;inti,length,iage,flag=1;intfind=0;while(flag==1){p
3、score[j]);}}average=0;max=0;maxi=0;for(i=0;imax){max=sum;maxi=i;}}average/=N;printf("No.namescore1score2score3average");for(i=0;i4、ame);for(j=0;j<3;j++)printf("%9.2f",stu[i].score[j]);printf("%8.2f",stu[i].avr);}printf("average=%5.2f",average);printf("Thehighestscoreis:student%s,%s.",stu[maxi].num,stu[maxi].name);printf("Hisscoresare:%6.2f,%6.2f,%6.2f,average:%5.2f.",stu[maxi].score[0],stu[ma5、xi].score[1],stu[maxi].score[2],stu[maxi].avr);}运行结果如下:(2)13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。所编写程序为:#include#defineN13structperson{intnumber;intnextp;}link[N+1];voidmain(){inti,count,h;for(i=1;i<=N;i++){if(i==N)link[i].nextp=1;elselink[i].next6、p=i+1;link[i].number=i;}printf("");count=0;h=N;printf("sequencethatpersonsleavethecircle:");while(count7、[i].number)printf("%3d",link[i].number);printf("");}运行结果如下:(3)建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。所编写程序为:#include#include#defineLENsizeof(structstudent)structstudent{charnum[6];charname[8];charsex[2];intage;structstudent*next;8、}str[10];voidmain(){structstudent*p,*pt,*head;inti,length,iage,flag=1;intfind=0;while(flag==1){p
4、ame);for(j=0;j<3;j++)printf("%9.2f",stu[i].score[j]);printf("%8.2f",stu[i].avr);}printf("average=%5.2f",average);printf("Thehighestscoreis:student%s,%s.",stu[maxi].num,stu[maxi].name);printf("Hisscoresare:%6.2f,%6.2f,%6.2f,average:%5.2f.",stu[maxi].score[0],stu[ma
5、xi].score[1],stu[maxi].score[2],stu[maxi].avr);}运行结果如下:(2)13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。所编写程序为:#include#defineN13structperson{intnumber;intnextp;}link[N+1];voidmain(){inti,count,h;for(i=1;i<=N;i++){if(i==N)link[i].nextp=1;elselink[i].next
6、p=i+1;link[i].number=i;}printf("");count=0;h=N;printf("sequencethatpersonsleavethecircle:");while(count7、[i].number)printf("%3d",link[i].number);printf("");}运行结果如下:(3)建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。所编写程序为:#include#include#defineLENsizeof(structstudent)structstudent{charnum[6];charname[8];charsex[2];intage;structstudent*next;8、}str[10];voidmain(){structstudent*p,*pt,*head;inti,length,iage,flag=1;intfind=0;while(flag==1){p
7、[i].number)printf("%3d",link[i].number);printf("");}运行结果如下:(3)建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。所编写程序为:#include#include#defineLENsizeof(structstudent)structstudent{charnum[6];charname[8];charsex[2];intage;structstudent*next;
8、}str[10];voidmain(){structstudent*p,*pt,*head;inti,length,iage,flag=1;intfind=0;while(flag==1){p
此文档下载收益归作者所有