大一上期C语言实验报告9结构体与共用体_第1页
大一上期C语言实验报告9结构体与共用体_第2页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成都工业学院计算机工程学院C语言程序设计基础实验报告实验名称实验9结构体与共用体学院计算机工程学院专业班级计算机科学与技术1班姓名学号任课老师实验时间90分钟1. 实验目的(1)掌握结构体类型变量的定义和使用;(2)掌握结构体类型数组的概念和使用;(3)掌握链表的概念,初步学会对链表进行操作;(4)掌握共用体的概念和使用。2. 实验内容(1)输入某天的日期,计算该天在给定年份中是第几天。要求1. 定义包含年,月,日信息的结构体类型。2. 利用scanf函数输入年,月,日的值。3. 输出日期以及该日期是给定年份中的第几天。4. 需要对闰年做判定。(2)在一个结构体数组中,存有三个人的姓名和年龄,

2、输出三人中年龄居中者的姓名和年龄。要求1. 三个人的数据采用直接初始化方式赋值。2. 利用结构体指针实现处理过程。(3)输入6名学生的学号,姓名和三门课程的成绩,三门课程的名称:(programming,database,network),存入到一个结构体数组中;编写aveScore()函数,其功能是计算学生三门课程的平均成绩,并存到结构体数组中;在主函数中输入学生信息,调用aveScore()函数,并输出学生的姓名和平均分信息。要求:1定义结构体类型,包括longsnum,charname,intscore,floatave变量,分别表示学生的学号,姓名,成绩数组和平均分。2. 在主函数中输

3、入学生的学号,姓名,和三门课成绩。3. 调用aveScore()函数,计算学生的平均成绩,存入到结构体函数的ave变量中。4. 在主函数中输出每个学生姓名和平均分信息。3. 源程序输入某天的日期,计算该天在给定年份中是第几天#include<stdio.h>structdateintyear;intmonth;intday;tian;/定义结构体voidmain()ints=0,i,a12=31,28,31,30,31,30,31,31,30,31,30,31;printf("Pleaseinputyear,month,day:n");scanf("%

4、d%d%d",&tian.year,&tian.month,&tian.day);/输入年月曰if(tian.year%4=0&&tian.year%100!=0)|tian.year%400=0)a2=29判断闰年,并进行处理printf("%d/%d/%dn",tian.year,tian.month,tian.day)输出年月曰for(i=0;i<tian.month-1;i+)s=s+ai;printf("Todayis%dday!n",s+tian.day);/输出为第几天(2) 输出三人

5、中年龄居中者的姓名和年龄#include<stdio.h>structdatecharname10;intage;structdate*t,p3="yi",22,"er",24,"san",16/初始化voidmain()intinstructdatetemp;t=p;for(i=0;i<3;i+)for(j=i;j<=3;j+)if(t+i)->age<(t+j)->age)temp=*(t+i);*(t+i)=*(t+j);*(t+j)=temp;/将三个人按年龄排序printf(&quo

6、t;%d",(t+2)->age);(3) 记录6个学生3门成绩,并计算平均值#include<stdio.h>structstudentlongnum;charname10;intpro;intdata;intnet;floataver;s6;voidmain()structstudent*p;printf("Inputsnum,name,3score:")输入学号,姓名,成绩for(p=s;p<s+6;p+)scanf("%ld%s%d%d%d",&(p_>num),&(p->name),

7、&(p->pro),&(p->data),&(p->net);printf("Students'sscore:n")输出学号,姓名,成绩for(p=s;p<s+6;p+)printf("%ld%st%d%d%dn",p->num,p->name,p->pro,p->data,p->net);floataveScore(inta,intb,intc)声明函数printf("Students'saveScoreis:n")计算并输出学生姓名及平均

8、成绩for(p=s;p<s+6;p+)p->aver=aveScore(p->pro,p->data,p->net);printf("%st%.2fn",p->name,p->aver);floataveScore(inta,intb,intc)/计算平均值函数floatave;ave=(float)(a+b+c)/3;returnave;4. 运行结果(1)输入某天的日期,计算该天在给定年份中是第几天Pleaseinputyear,month,day:201512312015/12/31Todayis365day!Pressany

9、keytocontinue(2)输出三人中年龄居中者的姓名和年龄82'F:jg9_2Debug9-2.exeTyi22Pressanykeytocontinue(3)记录6个学生3门成绩,并计算平均值nF;_3Debug76.exe”ntI123456S123456工问汗呵校个鱼en问汗呵校个角PU问汪呵学各鱼ud问汪呵学各合£5 5.6 4st问汪呵校个合问汪呵学各<?naniG,3score:984598124532129848451235score:984598124532129848451235aveScoreis:.3.67.6了4Pres

10、sanykeytocontinue5. 出现问题及解决办法(1) 在输出三人中年龄居中者的姓名和年龄时直接将指针定义成int*p,造成错误解决方法:将指针定义成结构体指针struetstudent*t;类型(2) 在输出三人中年龄居中者的姓名和年龄时未将指针t初始化造成输出错误解决方法:将指针t指向结构体数组p,添加语句:t=p;(3) 在讲结构体数组进行排序时出现错误,错误原因是因为中间变量temp为结构体外部的变量,不能访问结构体内部成员解决方法:将temp定乂为structdatetemp;(4) 在对学生姓名和成绩进行录入时,先使用直接访问结构体元素的方式总是出现错误,未找到原因for(i=0;i<6;i+)seanf("%ld&s%d%d%d",&si.num,&,&,&si.data,&);解决方法:定义一个结构体指针,采用指针的方式访问结构体元素for(p=s;p<s+6;p+)seanf("%ld%s%d%d%d",&(p->num),&(p->name),&(p->pro),&(p->data),&(p-&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论