• C语言结构体排序


    定义学生信息结构体和结构体数组,包括学号、两门百分制成绩和姓名;键盘输入

    学生不多于 30 人的信息,以输入成绩为负数或大于 100 作为输入结束;按照学号和平均成绩排序,并输出学生信息

    
    
     1 //输入学生分数信息,学号排序和平均分排序后输出
     2 
     3 #include <stdio.h>
     4 
     5 struct student{
     6     long num;
     7     char name[20];
     8     float score[2];
     9     float aver;
    10 }stu[],temp;
    11 
    12 int main(void){
    13     int i,j,k,n;
    14     printf("Enter score1 score2 num name
    ");
    15     for(i=0;;i++){        //当输入的分数1小于0或大于100时结束输入
    16         scanf("%f %f %ld %s",&stu[i].score[0],&stu[i].score[1],&stu[i].num,stu[i].name);
    17         if(stu[i].score[0]<0 || stu[i].score[0]>100) break;
    18         stu[i].aver=(stu[i].score[0] + stu[i].score[1]) / 2.0;
    19         
    20     }
    21     
    22     for(j=1;j<i-1;j++){                 //学号冒泡法排序
    23         
    24         for(k=0;k<i-j;k++){
    25             if(stu[k].num > stu[k+1].num){
    26                 temp=stu[k];
    27                 stu[k]=stu[k+1];
    28                 stu[k+1]=temp;
    29             }
    30         }
    31     }
    32     printf("after num
    ");              //输出
    33     printf("num	name			score1	score	aver
    ");
    34     for(n=0;n<i;n++)
    35         printf("%ld	%s	%.1f		%.1f		%.1f
    ",stu[n].num, stu[n].name, stu[n].score[0], stu[n].score[1],stu[n].aver);
    36     
    37     
    38     for(j=1;j<i-1;j++){                 //平均分冒泡法排序
    39         
    40         for(k=0;k<i-j;k++){
    41             if(stu[k].aver > stu[k+1].aver){
    42                 temp=stu[k];
    43                 stu[k]=stu[k+1];
    44                 stu[k+1]=temp;
    45             }
    46         }
    47     }
    48     printf("after aver
    ");
    49     printf("num	name		score1	score	aver
    ");
    50     
    51     for(n=i-1;n>=0;n--)
    52         printf("%ld	%s	%.1f		%.1f		%.1f
    ",stu[n].num, stu[n].name, stu[n].score[0], stu[n].score[1],stu[n].aver);
    53     return 0;
    54 }


  • 相关阅读:
    SSDB安装配置记录
    Ubuntu上通过nginx部署Django笔记
    PyCharm创建virtualenv方法
    Python3--列表生成式
    K最近邻算法项目实战
    K最近邻算法
    人工智能之机器学习
    C#把汉字转换成16进制(HEX)并向串口发送数据
    Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境
    HTTP响应状态码说明
  • 原文地址:https://www.cnblogs.com/liangjiahao713/p/6111397.html
Copyright © 2020-2023  润新知