首页 理论教育 C语言程序设计:结构体数组实例

C语言程序设计:结构体数组实例

时间:2023-10-29 理论教育 版权反馈
【摘要】:计算学生的平均成绩和不及格的人数。在main()函数中用for语句逐个累加各元素的score成员值并保存于变量sum之中。现有候选人4名,选民10名,每个选民只能投票选一人。请编写一个计票程序,统计每一名候选人的得票情况。在主函数中定义字符数组candidate_name,用来存放输入的候选人姓名。每次循环输入一个候选人,然后将它与结构体数组中的4名候选人姓名对比,看与哪一个相同,相同则票数count+1,直至输入结束。最后将候选人姓名和得票数输出。

C语言程序设计:结构体数组实例

【例8.2】计算学生的平均成绩和不及格的人数。

程序内容如下:

1 /*这是一个有关于结构体数组知识讲解的事例程序*/

2 #include<stdio.h>

3 struct Student

4 {

5  int num;

6  char name[20];

7  float score;

8 }student[5]={{201801,"Li",45},{201802,"Zhang",92.5},{201803,"Song",85.5},{201804,"Zhao",86},{201805,"Wang",58}};

9 int main()

10 {

11  int i,count=0;

12  float ave,sum=0;

13  for(i=0;i<5;i++){

14   sum+=student[i].score;

15   if(student[i].score<60)

16    count+=1;

17  }

18  printf("s=%f\n",sum);

19  ave=sum/5;

20  printf("average=%f\ncount=%d\n",ave,count);

21  return 0;

22 }

程序结果如图8.5所示:

图8.5 例8.2程序结果图

【例题中关键问题说明】

(1)本例程序中定义了一个结构体数组student,共5个数组元素,并进行了初始化赋值

(2)在main()函数中用for语句逐个累加各元素的score成员值并保存于变量sum之中。

(3)如果score的值小于60(不及格),使计数器count加1,循环完毕后计算平均成绩,并输出全班总分、平均分和不及格人数。

【例8.3】现有候选人4名,选民10名,每个选民只能投票选一人。请编写一个计票程序,统计每一名候选人的得票情况。

程序内容如下:

1 /*这是一个有关于结构体数组知识讲解的事例程序*/

2 #include<string.h>

3 #include<stdio.h>(www.xing528.com)

4 struct Person

5 {

6  char name[20];

7  int count;

8 }candidate[4]={"Zhao",0,"Qian",0,"Sun",0,"Li",0};

9 int main()

10 {

11  int i,j;

12  char candidate_name[20];

13  for(i=1;i<=10;i++)

14  {

15   scanf("%s",candidate_name);

16   for(j=0;j<4;j++)

17   {

18    if(strcmp(candidate_name,candidate[j].name)==0)

19     candidate[j].count++;

20   }

21  }

22 printf("\n Result:\n");

23 for(i=0;i<4;i++)

24 {

25  printf("%5s:%d\n",candidate[i].name,candidate[i].count);

26 }

27 return 0;

28 }

程序结果如图8.6所示:

图8.6 例8.3程序结果图

【例题中关键问题说明】

(1)定义一个结构体数组candidate,它有4个元素,每个元素包含两个成员name(姓名)和count(票数),在定义数组时初始化。

(2)在主函数中定义字符数组candidate_name,用来存放输入的候选人姓名。

(3)每次循环输入一个候选人,然后将它与结构体数组中的4名候选人姓名对比,看与哪一个相同,相同则票数count+1,直至输入结束。最后将候选人姓名和得票数输出。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈