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

    问题 A: 高级语言程序设计实验8-1计算成绩平均分并排序

    题目描述

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

    输入要求

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

    输出要求

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

    
    
    #include<stdio.h>
    struct student{
        int num;
        char name[20];
        int score;
    };
    struct student stud[10];
    int main(void)
    {
        int i,j,max,sum=0;
        struct student temp;
    
        for(i=0;i<10;i++){
            scanf("%d",&stud[i].num);
            scanf("%s",&stud[i].name);
            scanf("%d",&stud[i].score);
            sum=sum+stud[i].score ;
        }
        for(i=0;i<9;i++)
        {
            max=i;
            for(j=i+1;j<10;j++)
                if(stud[j].score <stud[max].score)
            max=j;
            temp=stud[max];
            stud[max]=stud[i];
            stud[i]=temp;
        }
    
        printf("The average: %d
    ",sum/10);
        printf("The student score:
    ");
            for(i=9;i>=0;i--)
                printf("%d %s %d
    ",stud[i].num ,stud[i].name ,stud[i].score );
    
            return 0;
    }
    
    
    
     

    问题 B: 高级语言程序设计实验8-2平均分和最高分

    题目描述

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

    输入要求

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

    输出要求

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

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

     
    #include<stdio.h>
    struct student{
        char name[19];
        int computer,english,math;
        double average;
    };
    double count_average(struct student s);
    int main(void)
    {
        int i;
        struct student s1;
        for(i=1;i<=5;i++){
            scanf("%s %.1f",s1.name,average);
        }
        return 0;
    }
    double count_average(struct student s)
    {
        return(s.math+s.english+s.computer)/3.0;
    }

    问题 C: C语言-平均分

    题目描述

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

    输入要求

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

    输出要求

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

     
    
    
    #include<stdio.h>
    struct student{
        int num;
        char name[10];
        int grade1,grade2,grade3,sum;
    };
    int count_sum(struct student s){
        return (s.grade1+s.grade2+s.grade3);}
    
    int main(void)
    {
        int i,n,index,sum1,sum2,sum3;
        struct student students[50];
        sum1=sum2=sum3=0;
        scanf("%d",&n);
        index=0;
        for(i=0;i<n;i++){
            scanf("%d%s%d%d%d",&students[i].num,&students[i].name,&students[i].grade1,&students[i].grade2,&students[i].grade3);
            sum1=sum1+students[i].grade1;
            sum2=sum2+students[i].grade2;
            sum3=sum3+students[i].grade3;
            students[i].sum=count_sum(students[50]);
        }
        sum1=sum1/n;
        sum2=sum2/n;
        sum3=sum3/n;
        printf("%d %d %d
    ",sum1,sum2,sum3);
    
        for(i=0;i<n;i++)
            if(students[i].sum<students[index].sum)
                index=i;
        printf("%d %s %d %d %d
    ",students[index].num,students[index].name,students[index].grade1,students[index].grade2,students[index].grade3);
        return 0;
    }
     

    问题 D: OJ使用测试

    题目描述

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

    输入要求

    输入四个人的年龄和姓名

    输出要求

    按年龄,从小到大输出人员年龄及其姓名

    #include<stdio.h> struct student{ char name[10]; int age; }; int main(void) { int i,index,j; struct student students[4],temp; for(i=0;i<4;i++){ scanf("%d%s",&students[i].age,students[i].name); } for(i=0;i<4;i++){ index=i; for(j=i+1;j<4;j++) if(students[j].age<students[index].age) index=j; temp=students[index]; students[index]=students[i]; students[i]=temp; } for(i=0;i<4;i++) printf("%d %s ",students[i].age,students[i].name); }
    #include<stdio.h>
    struct student
    {
        int num;
        char name[4];
        int a,b,c;
        int sum;
    };
    struct student stud[10],temp;
    int main(void)
    {
        int n;
        scanf("%d
    ",&n);
        int i,j,max;
        int sum1,sum2,sum3;
        int average1,average2,average3;
        sum1=sum2=sum3=0;
    
        for(i=0;i<n;i++){
        scanf("%d %s %d %d %d",&stud[i].num ,&stud[i].name ,&stud[i].a,&stud[i].b,&stud[i].c);
        sum1=sum1+stud[i].a;
        sum2=sum2+stud[i].b;
        sum3=sum3+stud[i].c;
        stud[i].sum=stud[i].a+stud[i].b+stud[i].c;
        }
        average1=sum1/n;
        average2=sum2/n;
        average3=sum3/n;
        printf("%d %d %d
    ",average1,average2,average3);
        
        
        for(i=0;i<n-1;i++){
            max=i;
            for(j=i+1;j<n;j++)
                if(stud[j].sum<stud[max].sum)
                    max=j;
                temp=stud[max];
                stud[max]=stud[i];
                stud[i]=temp;
        }
    
        printf("%d %s %d %d %d
    ",stud[i].num,stud[i].name,stud[i].a,stud[i].b,stud[i].c);
    
        return 0;
    }
  • 相关阅读:
    杭电dp题集,附链接还有解题报告!!!!!
    js正則表達式语法
    java界面编程(8) ------ 组合框(下拉列表)
    四个好看的CSS样式表格
    搜集朋友写的几篇Android Elf相关的文档
    hadoop编程小技巧(5)---自己定义输入文件格式类InputFormat
    递归算法
    ua识别(浏览器标识识别)
    amazeui学习笔记一(开始使用5)--藏品collections
    amazeui学习笔记一(开始使用4)--Web App 相关
  • 原文地址:https://www.cnblogs.com/chaoyue0806/p/3434936.html
Copyright © 2011-2022 走看看