c语言(结构体程序设计)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
3
{ int count_day; struct datetime date; printf("请输入年月日:\n"); scanf("%d%d%d",&date.year,&date.month,&date.day); count_day=days(date); printf(" 日 期 %d/%2d/%2d 是 %d 的 第 %d 天 \n",date.year,date.month,date.day,date.year,count_day); } int days(struct datetime date) { int result=0; int year=date.year,month=date.month,day=date.day; switch(month-1) { case 12: result+=31; case 11: result+=30; case 10: result+=31; case 9: result+=30; case 8: result+=31; case 7: result+=31; case 6: result+=30; case 5: result+=31; case 4: result+=30; case 3: result+=31; case 2: {
1
绩 :%3.1lf\n",std[i].num,std[i].name,std[i].math_score,std[i].computer_ score); } for(i=0;i<5;i++) { sum[i]=std[i].computer_score+std[i].math_score; aver[i]=sum[i]/2; } //按最高分降序排列 for(i=0;i<4;i++) { for(j=0;j<4-i;j++) { if(sum[j]<sum[j+1]) { //交换最高分 temp=sum[j]; sum[j]=sum[j+1]; sum[j+1]=temp; //交换对应的学生信息 std_temp=std[j]; std[j]=std[j+1]; std[j+1]=std_temp; //交换平均分 temp=aver[j]; aver[j]=aver[j+1]; aver[j+1]=temp;
2.定义一个结构体变量(包括年、月、日) 。编写一个函数 days,计算该日期在 本年中是第几天(注意闰年问题)。由主函数将年月日传递给 days 函数,计算之 后,将结果传回到主函数输出。 【程序代码】
struct datetime { int year; int month; int day; }; #include<stdio.h> int days(struct datetime); main()
} } } printf("按最高分由高到低为:\n"); for(i=0;i<5;i++) { printf("学号:%-5d 姓名:%s 数学成绩:%3.1lf 计算机成绩:%3.1lf 总 :%3.1lf 平 均
2
分
分 :%3.1lf\n",std[i].num,std[i].name,std[i].math_score,std[i].computer_ score,sum[i],aver[i]); } } 【运行结果】
C 语言程序设计实验报告
实验七、结构体程序设计
【实验目的】
(1)掌握结构体类型的概念、定义百度文库使用; (2)掌握结构体数组、结构体指针的定义和使用;
【实验内容及步骤】
1、输入 5 位同学的一组信息,包括学号、姓名、数学成绩、计算机成绩,求 得每位同学的平均分和总分,然后按照总分从高到低排序。 【程序代码】 : struct student { int num; char name[10]; double math_score; double computer_score; }; #include<stdio.h> main() { struct student std[5],std_temp; int i,j,temp; double sum[5],aver[5];
for(i=0;i<5;i++) { printf("输入第%d 学生的学号、 姓名、 数学成绩、 计算机成绩: \n",i+1); scanf("%d%s%lf%lf",&std[i].num,&std[i].name,&std[i].math_score,&st d[i].computer_score); } printf("您输入的学生信息为:\n"); for(i=0;i<5;i++) { printf(" 学 号 :%-5d 姓 名 :%s 数 学 成 绩 :%3.1lf 计 算 机 成
4
if(year%400==0||year%100!=0&&year%4==0) result+=28; else result+=29; } case 1: result+=31; } result+=day;//加上对应的月份的天数 return result; }
【运行结果】
【实验心得与体会】 结构体类型是用户自定义数据类型,先定义后使用。 结构体变量之间可以相互赋值;对结构体变量赋值,要对结 构体变量的每个成员赋值。 和其他变量一样,结构体变量也可以用在函数中作为形参, 作为返回值,也有结构体类型的指针。