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("\n总成绩是:%.2lf\n", sum);
avg = sum / 10;
printf("平均成绩是:%.2lf\n", 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("\n");
for(i = 0; i < 10; i++)
{
printf("%.2lf\t",grade[i]);
}
return 0;
}
本文来自博客园,作者:竹等寒,转载请注明原文链接。