C语言:学生成绩排名----冒泡排序
题目:
/* 输入10个学生成绩、 计算总分以及平均分数、 求出高于等于平均分的人数、 再按降序(由大到小)排序成绩并输出 */
用到的冒泡算法代码模板:
//外层控制轮数 for(i = 0; i < i; i++) { //内层控制每轮比较次数 for(j = 0; j < i; j++) { if(num[j] > num[j + 1]) //注意!!!!!把 <号 改成 >号 就变成了升序排序 ~ { temp = num[j]; num[j] = num[j + 1]; num[j + 1] = temp; } } }
学生成绩计算和排序代码:
#include<stdio.h> #define N 10 int main() { double grade[10] = {};//成绩 double sum = 0, avg, temp;//sum总分,平均数 ,临时变量 int i, j, num = 0;//i,j变量和num高于平均数的人数 printf("请输入10个学生的成绩:"); for(i = 0; i < 10; i++) { scanf("%lf", &grade[i]); } for(i = 0; i < 10; i++) { sum += grade[i]; } printf(" 总成绩是:%.2lf ", sum); avg = sum / 10; printf("平均成绩是:%.2lf ", avg); for(i = 0; i < N - 1; i++) { for(j = 0; j < N - i - 1; j++) { if(grade[j] < grade[j + 1]) { temp = grade[j]; grade[j] = grade[j + 1]; grade[j + 1] = temp; } } } for(i = 0; i < 10; i++) { if(grade[i] > avg) { num += 1; } } printf("高于平均分数的有%d个人", num); printf(" "); for(i = 0; i < 10; i++) { printf("%.2lf ",grade[i]); } return 0; }
下一篇:
如何编写PlantUml文本绘图时序图