3条回答 默认 最新
- 往事如风,闲云野鹤 2021-06-08 00:39关注
#include "stdio.h" #define N 2 struct student{ int stuNo; char stuName[20]; float kq; float ktbx; float pszy; float ktbj; float score; float total; }stu[N]; int main(){ //输入成绩 for(int i=0;i<N;i++){ printf("请输入第%d个同学的学号、姓名、考勤、课堂表现、平时作业、课堂笔记、末考成绩(空格隔开)\n",i+1); scanf("%d %s %f %f %f %f %f",&stu[i].stuNo,stu[i].stuName,&stu[i].kq,&stu[i].ktbx,&stu[i].pszy,&stu[i].ktbj,&stu[i].score); stu[i].total=(stu[i].kq*0.3+stu[i].ktbx*0.3+stu[i].pszy*0.3+stu[i].ktbj*0.1)*0.3+stu[i].score*0.7; } //排序 for(int i = 0; i < N - 1; i++) { for(int j = 0; j < N - 1 - i; j++) { // 相邻元素两两对比 if(stu[j].total < stu[j+1].total) { struct student temp; //元素交换 temp = stu[j+1]; stu[j+1] = stu[j]; stu[j] = temp; } } } printf("学号\t姓名\t总分\n"); for(int i=0;i<N;i++){ printf("%d\t%s\t%.2f\n",stu[i].stuNo,stu[i].stuName,stu[i].total); } return 0; }
代码如上,万望采纳。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1