结构体实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实
验
报
告
题目:结构体实验报告:XXXXX
学号:XXXXXXXXXXXX 班级:XXXXXXXXXXXXXXXX 专业:XXXXXXXXX
成绩:
一、实验目的
掌握结构类型的定义和使用,学会使用结构数组编程解决问题。
二、实验容、要求与安排方式
1、实验容:
编程解决如下问题:谁的年龄最小、奖学金统计、猴子选大王、选票统计(二)、数星星(二),任选四道题,其中选票统计(二)、数星星(二)必选。
2、要求:能够上机编辑、调试程序并通过OJ测试。
3、实验安排方式:每组1人,独立完成上机实验;
4、注意事项:结构的嵌套定义和引用方法、用指针访问结构。
三、代码及调试结果
1.数星星代码:
#include
#include
#include
typedef struct shiquan
{
int x;
int y;
} S; //定义结构体
int main()
{
S s[216];
int n,i,j;
int sum=0;
scanf("%d",&n);
for(i=0; i { scanf("%d %d",&s[i].x,&s[i].y); } sum=n; for(i=0; i for(j=0; j { if(s[i].x==s[j].x&&s[i].y==s[j].y) sum--; } printf("%d\n",sum); return 0; } 调试结果: 图1 数星星调试结果 2.奖学金代码: #include #include typedef struct student { char name[20]; int Last_Score; int Class_Score; char Stu_leader; char w_stu; int article; int sum; } STU; int main() { int n; STU p[11]; int flag=0; int sum=0; int max=0; scanf("%d",&n); int i; for(i=0; i { scanf("%s%d%d %c %c %d",p[i].name, &p[i].Last_Score, &p[i].Class_Score, &p[i].Stu_leader, &p[i].w_stu, &p[i].article); p[i].sum=0; } for(i=0; i { if( p[i].Last_Score>80&& p[i].article>=1) p[i].sum+=8000; if( p[i].Last_Score>85&& p[i].Class_Score>80) p[i].sum+=4000; if( p[i].Last_Score>90) p[i].sum+=2000; if( p[i].Last_Score>85&& p[i].w_stu=='Y') p[i].sum+=1000; if( p[i].Class_Score>80&& p[i].Stu_leader == 'Y') p[i].sum+=850; sum+=p[i].sum; } for(i=0; i { if( p[i].sum>max) { max= p[i].sum; flag=i; } } printf("%s\n",p[flag].name); printf("%d\n",p[flag].sum); printf("%d\n",sum); return 0; } 调试结果: 3.谁的年龄最小代码: #include #include typedef struct student { int y; char n[60]; int m; int d; }STU; int main() { int n; STU stu,min; scanf("%d",&n); min.y=-1; min.m=-1; min.d=-1; while(n--) { scanf("%s",stu.n); scanf("%d",&stu.y); scanf("%d",&stu.m); scanf("%d",&stu.d); if(stu.y>min.y) min=stu; else if(stu.y==min.y) { if(stu.m>min.m) stu=min; else if(stu.m==min.m) { if(stu.d>min.d) stu=min; } } } printf("%s",min.n); printf("%d",min.y); printf("-%0.2d",min.m); printf("-%0.2d\n",min.d); return 0; } 调试结果: 4.成绩统计代码: #include #include typedef struct student { char id[20]; char name[60]; int a,b,c; } STU; int main() { STU stu,max; int n;