C语言编程题 望大家帮忙。

来源:百度知道 编辑:UC知道 时间:2024/05/12 07:38:59
以知3名学生的相关数据,每个学生的数据包括学号 姓名,三门课的成绩输出三名学生按总分 由高到低的排序结果 。

求 各位高手帮忙 谢谢 C语言 考试,要不我就挂了

以知3名学生的相关数据,每个学生的数据包括学号 姓名,三门课的成绩输出三名学生按总分 由高到低的排序结果 。

这倒题目可以用if和起泡法来做。

先来说一下用if的解题思路:

假设3学生的总分为a,b,c。
if a < b 将a和b对换
if a < c 将a和c对换
if b < c 将b和c对换

然后顺序输出a,b,c即可

以下是代码:
#include <iostream>

void main()
{
int a,b,c,n;//定义a,b,c三个学生分数变量和一个临时变量n
printf("请输入学生A的分数:\n");//分别输入三个学生的分数
scanf("%d",&a);
printf("请输入学生B的分数:\n");
scanf("%d",&b);
printf("请输入学生C的分数:\n");
scanf("%d",&c);
if (a<b)
{n=a;a=b;b=n;}//实现a和b的互换
if (a<c)
{n=a;a=c;c=n;}//实现a和c的互换
if (b<c)
{n=b;b=c;c=n;}//实现b和c的互换
printf("%d , %d , %d\n",a,b,c);//依次按高到低输出a,b,c
}

另外还可以用起泡法进行排列,不过此法比较复杂一般用在多数整序里面。3个数用这个方法稍显浪费。

#include <iostream>

void main()
{
int n[3];
int i,x,a;

printf("请分别输入A B