• 习题13(结构体)


    1、程序改错题:以下程序功能是对任意输入的5个学生成绩中找出最高分成绩及其对应的姓名。

    #include <stdio.h>

    struct student

    {

    char name[10];int score;

    };

    void main()

    {

    int i,max=0;

    struct student st[5],*p=st,*q=st;

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

    {

    printf("请输入第%d个学生信息(姓名 成绩):",i+1);

    scanf("%s%d",st[i].name,&st[i].score);

    }

    for (;p<st+5;p++)

    {

    if(max<p->score)

    {

    max=p->score;

    q=p;

    }

    }

    printf("成绩最高的学生信息是:%s:%d\n",q->name,q->score);

    }

    2、编写结构体stuscore(学号,英语,C语言,数据库,编译原理)kemuaver(科目,平均分)

      编程实现:根据输入的5个学生的成绩计算出每科的平均分并存入相应的结构体变量中并输出科目及其对应的平均分。

    #include <stdio.h>

    struct stuscore{

    char sid[5];

    int  en;

    int  clan;

    int  data;

    int  bianyi;

    }stc[5]={};

    struct kemuaver

    { char sub[10];

    float  avg;

    }av[4]={"英语:",0,"C语言:",0,"C语言:",0,"编译原理:",0};

    void main()

    {

    int i,sum[4]={0};

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

    printf("请输入第%d个学生信息(学号 英语 C语言 C语言 编译原理):",i+1);

    scanf("%s%d%d%d%d",stc[i].sid,&stc[i].en,&stc[i].clan,&stc[i].data,&stc[i].bianyi);

    }

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

    sum[0]+=stc[i].en;

    sum[1]+=stc[i].clan;

    sum[2]+=stc[i].data;

    sum[3]+=stc[i].bianyi;

    }

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

    av[i].avg=sum[i]/5;

    }

    printf("科的平均成绩是:");

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

    {

    printf("%s%.2f  ",av[i].sub,av[i].avg);

    }

    printf("\n");

    }

    3、编写结构体stu(学号,姓名,成绩)

       编写函数:对stu结构体类型的n个学生按成绩由高到低排序

       编程实现:任意输入5个学生的信息,按成绩由高到低排序并输出成绩排序后的信息(可任选排序方法实现)。

    #include <stdio.h>

    struct st

    {

        char sid[10];

        char name[10];

        int score;

    } st[5] = {},t[5]={};

    void sort(struct st st[],struct st t[],int len);

    void main()

    {

        int i,j;

        int len=sizeof(st)/sizeof(st[0]);

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

        {

            printf("请输入第%d个学生信息(学号 姓名 成绩):", i+1);

            scanf("%s%s%d", st[i].sid, st[i].name, &st[i].score);

        }

        sort(st,t,len);

        printf("按成绩从高到底排列为:\n");

        for(i=len-1;i>=0;i--){

            printf("%s %s %d\n",t[i].sid,t[i].name,t[i].score);

        }

    }

    void sort(struct st st[],struct st t[],int len)

    {

        int i,j;

        for(i=0;i<len;i++){

            for(j=0;j<len-i;j++){

                if(st[j].score>st[j+1].score){

                    t[j]=st[j];

                    st[j]=st[j+1];

                    st[j+1]=t[j];

                }

            }

        }

    }

    小胖专属学习分享
  • 相关阅读:
    DDL-表的管理
    DDL-库的管理
    Linux虚拟机--进入MySQL报错的解决办法
    前端底层-原型
    前端底层-对象与构造函数
    前端底层-this
    前端底层-DOM
    前端底层-数据类型与数据的三大存储格式
    前端底层-函数
    前端底层-数据类型与全局属性
  • 原文地址:https://www.cnblogs.com/xpl520/p/15689813.html
Copyright © 2020-2023  润新知