zoukankan      html  css  js  c++  java
  • 习题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];

                }

            }

        }

    }

    小胖专属学习分享
  • 相关阅读:
    github设置添加SSH
    解决方案 git@github.com出现Permission denied (publickey)
    Shell 获取进程号 规格严格
    转线程堆栈获取 规格严格
    NTP搭建(原创) 规格严格
    Ntp完整说明(转载) 规格严格
    JavaAgent(转载) 规格严格
    Location of javaagent jar in bootclasspath 规格严格
    Manifest(转) 规格严格
    分析一下shell(转) 规格严格
  • 原文地址:https://www.cnblogs.com/xpl520/p/15689813.html
Copyright © 2011-2022 走看看