zoukankan      html  css  js  c++  java
  • 实验 11 结构体

    输入四个人的年龄和姓名,排序后,按年龄,从小到大输出人员年龄及其姓名

    假如输入

    30 aaa
    23 bbb
    15 ccc
    32 ddd

    应当输出

    15 ccc
    23 bbb
    30 aaa
    32 ddd
    #include<stdio.h>
    struct people{
        int age;
        char name[5];
    } ;
    
    int main(void)
    {
        int i,j,index;
        struct people people[10],temp;
    
        for(i=0;i<4;i++){
            scanf("%d",&people[i].age);
            scanf("%s",&people[i].name);
        }
    
        for(i=0;i<3;i++){
            index=i;
            for(j=i+1;j<4;j++)
                if(people[j].age < people[index].age){
                    index = j;
                }
                temp = people[index];
                people[index] = people[i];
                people[i] = temp;
        }
    
        for(i=0;i<4;i++)
            printf("%d %s
    ",people[i].age,people[i].name);
    
        return 0;
    }

    ____________________________________________________________________________________________

    题目描述

    输入10个学生的学号、姓名和成绩,计算并输出平均分,再按照从高分到低分的顺序输出他们的信息。

    输入要求

    输入10个学生的学号、姓名和成绩。学号和成绩用整数表示,姓名是一个长度不超过19个字符的字符串。

    输出要求

    输出平均分,再按照从高分到低分的顺序输出10个学生的信息。

    假如输入

    101 aaa 80
    102 bbb 90
    103 ccc 70
    104 ddd 60
    105 eee 80
    106 fff 60
    107 ggg 78
    108 hhh 80
    109 iii 68
    110 jjj 80

    应当输出

    The average: 74
    The student score:
    102 bbb 90
    110 jjj 80
    101 aaa 80
    108 hhh 80
    105 eee 80
    107 ggg 78
    103 ccc 70
    109 iii 68
    106 fff 60
    104 ddd 60
    #include<stdio.h>
    struct student{
        int num;
        char name[19];
        int score;
        int average;
    };
    int main(void)
    {
        int i,index,j;
        int k=0;
        int average;
        struct student students[10],temp;
    
        for(i=0;i<10;i++){
            scanf("%d",&students[i].num);
            scanf("%s",&students[i].name);
            scanf("%d",&students[i].score);
            k=k+students[i].score ;
        }
    
        for(i=0;i<9;i++){
            index=i;
            for(j=i+1;j<10;j++)
                if(students[j].score<students[index].score)
                    index=j;
                temp=students[index];
                students[index]=students[i];
                students[i]=temp;
        }
        average=k/10;
    
        printf("The average: %d
    ",average);
        printf("The student score:
    ");
        for(i=9;i>=0;i--)
            printf("%d %s %d
    ",students[i].num,students[i].name,students[i].score);
    
        return 0;
    }



    ____________________________________________________________________________________________

    题目描述

    输入某班5位学生的姓名及数学、英语成绩,计算每位学生的平均分;然后输出平均分最高的学生之姓名及数学、英语成绩。

    输入要求

    输入某班5位学生的姓名及数学、英语成绩。姓名是一个长度不超过19个字符的字符串,成绩用整数表示。

    输出要求

    输出每名学生的姓名和平均分,平均分用浮点数表示,输出时精确到小数点后1位。

    然后输出平均分最高的学生之姓名及数学、英语成绩。

    假如输入

    aaa 61 88
    bbb 63 89
    ccc 64 82
    ddd 85 66
    eee 66 85

    应当输出

    aaa 74.5
    bbb 76.0
    ccc 73.0
    ddd 75.5
    eee 75.5
    The max score: bbb 63 89

     

    #include<stdio.h>
    struct student{
        char name[20];
        int math,english;
        float sum,average;
    };
    int main(void)
    {
        int i,max;
        struct student stu[5];
    
        for(i=0;i<5;i++){
        scanf("%s",&stu[i].name);
        scanf("%d",&stu[i].math);
        scanf("%d",&stu[i].english);
        stu[i].sum = stu[i].math+stu[i].english;
        stu[i].average = stu[i].sum/2;
        }
    
        max=0;
        for(i=1;i<5;i++){
            if(stu[max].average<stu[i].average)
                max=i;
        }
    
        for(i=0;i<5;i++){
        printf("%s %.1f
    ",stu[i].name,stu[i].average);
        }
        printf("The max score: %s %d %d
    ",stu[max].name,stu[max].math,stu[max].english);
    
        return 0;
    }

    ____________________________________________________________________________________________

    题目描述

    有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及总分最高分的学生的数据(包括学号、姓名、3门课成绩)

    输入要求

    学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。

    输出要求

    各门课的平均成绩 总分最高分的学生的数据(包括学号、姓名、3门课成绩)

    假如输入

    2
    1 blue 90 80 70
    2 clan 80 70 60

    应当输出

    85 75 65
    1 blue 90 80 70

    #include<stdio.h>
    struct student{
        int num;
        char name[20];
        int score1,score2,score3,sum;
    };
    int main(void)
    {
        int i,n,sum;
        int sum1=0,sum2=0,sum3=0;
        int ave1,ave2,ave3;
        struct student stu[30];
    
        scanf("%d",&n);
        for(i=0;i<n;i++){
            scanf("%d",&stu[i].num);
            scanf("%s",&stu[i].name);
            scanf("%d",&stu[i].score1);
            scanf("%d",&stu[i].score2);
            scanf("%d",&stu[i].score3);
            stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
        }
    
        for(i=0;i<n;i++){
            sum1=sum1+stu[i].score1;
            sum2=sum2+stu[i].score2;
            sum3=sum3+stu[i].score3;
        }
        ave1=sum1/n;
        ave2=sum2/n;
        ave3=sum3/n;
        printf("%d %d %d
    ",ave1,ave2,ave3);
    
        sum=0;
        for(i=0;i<n;i++){
            if(stu[i].sum>stu[sum].sum)
                sum=i;
        }
    
            printf("%d %s %d %d %d
    ",stu[sum].num,stu[sum].name,stu[sum].score1,stu[sum].score2,stu[sum].score3);
    
            return 0;
    }
  • 相关阅读:
    阿迪亚香提:顿悟
    生活就像练习-整合式探究
    [Web API] Web API 2 深入系列(1) 路由
    Sublime Text 2
    整合练习:信息过剩时代的止痛药
    win (NT6.1+) server版的:【2个远程桌面用户(单会话)】升级为终端服务器【多用户(多会话)】
    win (NT6.1+) 非server版的:【单个远程桌面用户(单会话)】远程桌面多开【多用户(单会话)】
    win7:【单个远程桌面用户(单会话)】远程桌面多开【多用户(单会话)】
    win 2003:【2个 远程桌面用户({允许同一个用户最多2个会话})】升级为终端服务【多用户(多会话)】
    win xp:【单用户(单会话)】远程桌面多开【多用户(单会话)】
  • 原文地址:https://www.cnblogs.com/danson-daisy/p/3435275.html
Copyright © 2011-2022 走看看