当前位置:范文大全 > 调查报告 > 结构体实验报告:c语言结构体实验报告

结构体实验报告:c语言结构体实验报告

时间:2021-11-08 18:18:23 浏览次数:

  结构体实验报告

 结构体实验报告

 结构体实验报告

 实

 验

 报

 告

 题目: 结构体实验报告

 姓名: XXXXX

 学号: XXXXXXXXXXXX

 班级: XXXXXXXXXXXXXXXX

 专业: XXXXXXXXX

 成绩:

 一、实验目的掌握结构类型的定义与使用,学会使用结构数组编程解决问题。

 二、实验内容、要求与安排方式

 实验内容:

 编程解决如下问题:谁的年龄最小、奖学金统计、 猴子选大王、 选票统计(二)、 数星星(二),任选四道题,其中 选票统计(二)、 数星星(二)必选。

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

 实验安排方式:每组1人,独立完成上机实验;

 注意事项:结构的嵌套定义与引用方法、用指针访问结构。

 三、代码及调试结果

 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",stu、name);

  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",max、name);

  printf(" %d",max、a);

  printf(" %d",max、b);

  printf(" %d\n",max、c);

  return 0;

 }

 调试结果: