使用结构体数组统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出

偏执的太偏执、 2023-03-13 12:29 158阅读 0赞
  1. 《程序设计基础-c语言》杨莉 刘鸿翔
  2. ISBN-978-7-03-032903-5
  3. p165
  4. 习题6

3.输入10个学生的信息(包括学号、姓名、性别、年龄、成绩)组成结构体数组,分别统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出
思路:

  1. 使用两个结构体stuinfcnt1分别存储学生信息统计信息
  2. 使用for循环计算平均年龄和平均成绩
  3. 并用for循环嵌套if判断高于平均成绩的学生,并输出信息

    include

    define MAX 10

    struct count
    {

    1. int mcnt; /*女生人数*/
    2. int fcnt; /*男生人数*/
    3. int ysum; /*年龄总和*/
    4. int ssum; /*成绩总和*/
    5. float yaver; /*年龄平均*/
    6. float saver; /*成绩平均*/

    }cnt1;
    struct stuinf
    {

    1. int xuehao; /*学号*/
    2. char name[20]; /*姓名*/
    3. char sex; /*性别*/
    4. int year; /*年龄*/
    5. float score; /*成绩*/

    }stu[MAX];
    int main(void)
    {

    1. int i;
    2. /*接受10位学生信息输入*/
    3. printf("输入%d的学生信息:\n",MAX);
    4. for(i=0;i<MAX;i++)
    5. {
    6. scanf("%d %s %c %d %f",&stu[i].xuehao,stu[i].name,&stu[i].sex,&stu[i].year,&stu[i].score);
    7. }
    8. /*判断*/
    9. for(i=0;i<MAX;i++)
    10. {
    11. if(stu[i].sex=='f'||stu[i].sex=='F') /*'f'||'F',男生人数+1*/
    12. {
    13. cnt1.fcnt++;
    14. }
    15. else if(stu[i].sex=='m'||stu[i].sex=='M') /*'m'||'M',女生人数+1*/
    16. {
    17. cnt1.mcnt++;
    18. }
    19. cnt1.ysum+=stu[i].year; /*求年龄总和*/
    20. cnt1.ssum+=stu[i].score; /*求成绩总和*/
    21. }
    22. cnt1.yaver=cnt1.ysum/MAX; /*计算年龄平均*/
    23. cnt1.saver=cnt1.ssum/MAX; /*计算成绩平均*/
    24. /*输出平均年龄、平均成绩*/
    25. printf("\n男生:%4d 女生:%4d 平均年龄:%4.f 平均成绩:%4.2f\n",cnt1.fcnt,cnt1.mcnt,cnt1.yaver,cnt1.saver);
    26. printf("\n输出大于平均成绩的学生信息:\n");
    27. for(i=0;i<MAX;i++)
    28. {
    29. if(stu[i].score>cnt1.saver) /*大于平均成绩,即输出学生信息*/
    30. {
    31. printf("\n%d %s %c %d %.2f\n",stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].year,stu[i].score);
    32. }
    33. }

    }

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,158人围观)

还没有评论,来说两句吧...

相关阅读