当前位置:文档之家› 结构体实验报告

结构体实验报告





题目:结构体实验报告:XXXXX
学号:XXXXXXXXXXXX 班级:XXXXXXXXXXXXXXXX 专业:XXXXXXXXX
成绩:
一、实验目的
掌握结构类型的定义和使用,学会使用结构数组编程解决问题。

二、实验容、要求与安排方式
1、实验容:
编程解决如下问题:谁的年龄最小、奖学金统计、猴子选大王、选票统计(二)、数星星(二),任选四道题,其中选票统计(二)、数星星(二)必选。

2、要求:能够上机编辑、调试程序并通过OJ测试。

3、实验安排方式:每组1人,独立完成上机实验;
4、注意事项:结构的嵌套定义和引用方法、用指针访问结构。

三、代码及调试结果
1.数星星代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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<n; i++)
{
scanf("%d %d",&s[i].x,&s[i].y);
}
sum=n;
for(i=0; i<n; i++)
for(j=0; j<i; j++)
{
if(s[i].x==s[j].x&&s[i].y==s[j].y)
sum--;
}
printf("%d\n",sum);
return 0;
}
调试结果:
图1 数星星调试结果
2.奖学金代码:
#include <stdio.h>
#include <stdlib.h>
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<n; 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<n; 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<n; 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<stdio.h>
#include<stdlib.h>
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<stdio.h>
#include<stdlib.h>
typedef struct student
{
char id[20];
char name[60];
int a,b,c;
} STU;
int main()
{
STU stu,max;
int n;
max.a=0;
max.b=0;
max.c=-1;
scanf("%d",&n);
while(n--)
{
scanf("%s",stu.id);
scanf("%s",);
scanf("%d%d%d",&stu.a,&stu.b,&stu.c);
if((stu.a+stu.b+stu.c)>(max.a+max.b+max.c)) {
max=stu;
}
}
printf("%s",max.id);
printf(" %s",);
printf(" %d",max.a);
printf(" %d",max.b);
printf(" %d\n",max.c);
return 0;
}
调试结果:。

相关主题