C语言----结构的嵌套(进阶篇二十三)

  结构数组

    既然结构是一个自定义“类型”,那么我们可以像int那样,定义一个结构数组:

      struct student ArrayStu[10];

    上面的代码一次定义了10个学生。如果同时给这个数组的前2个元素初始化,就写为:

      struct student ArrayStr[10]={{“张三”,”男”,18},{“李四”,”女”,22}};

   结构数组元素使用时和普通变量一样要加上下标:

      ArrayStu[1].age=18;

      它把李四的年龄改成了18岁

  结构嵌套

    struct Student /*学生*/

      {

        char name[10]; /*姓名*/

        char sex[3]; /*性别*/

        int age; /*年龄*/

      };

 

    struct Room /*寝室*/

      {

        int number; /*号码*/

        struct Student stu; /*学生*/

      };

    main()

      {

        struct Room room;

        strcpy(room.stu.name,”张三”);

      }

 

    ※这里举的是结构嵌套结构变量的例子,结构也可以嵌套结构。

  结构成员为数组

    我们将学生结构定义修改一下:

    struct student /*学生*/

     {

      char name[10]; /*姓名*/

      float score[8]; /*本学期8门课成绩*/

      float aver; /*平均分*/

    };

    此结构表示每个学生将本学期8门课的考试成绩放在score数组中,最后通过程序算出平均分存进aver。

// 23-1结构体计算平均分.c

#include <stdio.h>

//学生结构体
struct student
{
    char name[10];
    float score[8];
    float aver;
};

main()
{
    struct student stu = { "张三",81.1,73.3,68.9,75.7,98,3,99.1,78.1,90.2 };
    int i;
    for (int i = 0; i < 8; i++)
    {
        stu.aver += stu.score[i];
    }
    stu.aver = stu.aver / 8;
    printf("%f
", stu.aver);
}
原文地址:https://www.cnblogs.com/httpcc/p/15481746.html