结构体相关

来源:互联网 发布:手机号定位追踪软件 编辑:程序博客网 时间:2024/06/06 12:46

结构体相关

结构体中的成员可以是各种类型的东西,比如普通变量,指针,数组,甚至是另外一个结构体或者是结构体自身,而结构体本身也可以被声明为各种类型。这就给结构体的应用带来了很大的灵活性.

定义/声明方式一:

struct 结构名{
        类型 变量名;
        类型 变量名;
        ...
     } 结构变量;

        struct structTemp{        char sex[5];        int num;        struct structEmbed{            char name;            int age[5];        }structTest;    }structVar[10];

定义/声明方式二:

struct 结构名{
        类型 变量名;
        类型 变量名;
        ...
     } ;

struct 结构名  结构变量;

     struct structTemp{        char sex[5];        int num;        struct structEmbed{            char name;            int age[5];        }structTest;    };    struct structTemp structVar[10];

示例:

有十位学生,现从键盘分别输入其学号,姓名,以及三门课的考试成绩。要求:求出每个同学的总分和平均成绩,并按总分从高到低排序,输出每个学生的信息(包括:学号,姓名,三门课的分数,平均分,总分)。

int main(void){ //例子 typedef    struct student{        char  num[6];        char  name[8];        int   score[3];        float avr;        float total;    }stu[10];        struct student stuTemp;    //录入数据    for (int i = 0; i < 10; i ++) {        float sum = 0;        printf("\n请输入No.%d学生的分数\n",i+1);        printf("学号:");        scanf("%s",stu[i].num);                printf("姓名:");        scanf("%s",stu[i].name);        for (int j = 0; j < 3; j ++) {            printf("科目%d分数:",j+1);            scanf("%d",&stu[i].score[j]);                        sum += stu[i].score[j];        }        stu[i].avr   = sum/3.0;        stu[i].total = sum;    }        //按总分从大到小排序    for (int i = 0; i < 10; i ++) {        for (int j = 0; j < 10; j ++) {            if(stu[i].total < stu[j].total){                stuTemp = stu[i];                stu[i]  = stu[j];                stu[j]  = stuTemp;            }        }    }        //输出    for (int i = 0; i < 10; i ++) {        printf("\n学号:%s 姓名:%s 科目1:%d 科目2:%d 科目3:%d 平均分:%.2f 总分:%.2f",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avr,stu[i].total);    }}
结构指针
    结构指针是指向结构的指针,它由一个加在结构变量名前的“ * ”操作符来定义。
    使用结构指针对结构成员的访问方式:
    结构指针名 -> 结构成员
    (*结构指针名).结构成员
    stu -> total
    (*stu).total


声明方式:
     struct 结构名{
            类型 变量名;
            类型 变量名;
            ...
     } *结构变量;

或:
      struct 结构名{

      类型 变量名;
            类型 变量名;
            ...
       } ;

      struct 结构名  *结构变量;

 


0 0
原创粉丝点击