结构体排序
2020-04-05 12:16
183 查看
定义学生信息结构体和结构体数组,包括学号、两门百分制成绩和姓名;键盘输入
学生不多于 30 人的信息,以输入成绩为负数或大于 100 作为输入结束;按照学号和平均成绩排序,并输出学生信息
//输入学生分数信息,学号排序和平均分排序后输出 #include <stdio.h> struct student{ long num; char name[20]; float score[2]; float aver; }stu[],temp; int main(void){ int i,j,k,n; printf("Enter score1 score2 num name\n"); for(i=0;;i++){ //当输入的分数1小于0或大于100时结束输入 scanf("%f %f %ld %s",&stu[i].score[0],&stu[i].score[1],&stu[i].num,stu[i].name); if(stu[i].score[0]<0 || stu[i].score[0]>100) break; stu[i].aver=(stu[i].score[0] + stu[i].score[1]) / 2.0; } for(j=1;j<i-1;j++){ //学号冒泡法排序 for(k=0;k<i-j;k++){ if(stu[k].num > stu[k+1].num){ temp=stu[k]; stu[k]=stu[k+1]; stu[k+1]=temp; } } } printf("after num\n"); //输出 printf("num\tname\t\t\tscore1\tscore\taver\n"); for(n=0;n<i;n++) printf("%ld\t%s\t%.1f\t\t%.1f\t\t%.1f\n",stu .num, stu .name, stu .score[0], stu .score[1],stu .aver); for(j=1;j<i-1;j++){ //平均分冒泡法排序 for(k=0;k<i-j;k++){ if(stu[k].aver > stu[k+1].aver){ temp=stu[k]; stu[k]=stu[k+1]; stu[k+1]=temp; } } } printf("after aver\n"); printf("num\tname\t\tscore1\tscore\taver\n"); for(n=i-1;n>=0;n--) printf("%ld\t%s\t%.1f\t\t%.1f\t\t%.1f\n",stu .num, stu .name, stu .score[0], stu .score[1],stu .aver); return 0; }
- 点赞 3
- 收藏
- 分享
- 文章举报
相关文章推荐
- C/C++复习:学生信息排序(结构体)
- 47.对文件中的结构体数组进行排序
- C语言,有5名学生保存在结构体数组中,编程按学生的成绩升序排序,按学生的姓名降序排序,按年龄从低到高排序
- 结构体排序
- hdu 2022 海选女主角_结构体三级排序
- 结构体排序
- 简单的结构体排序
- c语言结构体排序示例
- C++ STL 标准结构体排序
- 1109. Group Photo (25)[结构体排序]
- SDNU 1281.谁是第一名 水题 结构体排序 注意名字比较
- PAT (Advanced Level) 1028. List Sorting (25) 结构体排序
- A-筱玛爱地理 ( 快速幂、逆元、sort cmp函数-结构体排序)
- c语言中使用自带的qsort(结构体排序)+ 快排
- 一种排序(STL结构体排序)
- codevs 1142 奖学金(结构体排序)
- PAT (Advanced Level) 1080. Graduate Admission (30) 模拟高考录取,结构体排序
- gplt L2-009. 抢红包(结构体排序)
- STL的list容器如何对结构体进行排序
- 九度OJ-题目1167-数组排序-结构体数组排序