成绩排序 把成绩按分数从低到高的顺序进行排序并输出,每个成绩后有一个空格。

期末考试临近尾声,请帮老师们编写一段代码,对n位学生的课程成绩(整型数据)进行升序排列并输出。

输入格式:
第一行为n (0 < n <= 50),表示班里的学生数目; 第二行n个数,表示n个学生的成绩 ,成绩为一个不大于100的非负整数。

输出格式:
把成绩按分数从低到高的顺序进行排序并输出,每个成绩后有一个空格。

输入样例:
6
70 63 91 71 6 73
结尾无空行
输出样例:
6 63 70 71 73 91
结尾无空行期末考试临近尾声,请帮老师们编写一段代码,对n位学生的课程成绩(整型数据)进行升序排列并输出。

输入格式:
第一行为n (0 < n <= 50),表示班里的学生数目; 第二行n个数,表示n个学生的成绩 ,成绩为一个不大于100的非负整数。

输出格式:
把成绩按分数从低到高的顺序进行排序并输出,每个成绩后有一个空格。

输入样例:
6
70 63 91 71 6 73
结尾无空行
输出样例:
6 63 70 71 73 91
结尾无空行

你题目的解答代码如下:

#include <stdio.h>

void sort(int a[],int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)//n个数,总共需要进行n-1次
    {   //每次会将最大(升序)或最小(降序)放到最后面
        for(j=0;j<n-i-1;j++)
        {
            if(a[j]>a[j+1])//每次冒泡,进行交换
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
}

void main()
{
    int i,n;
    scanf("%d", &n);
    int a[n];
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    sort(a,n);
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    int x;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

#include <stdio.h>

#define N 50

void input(int *a, int n)
{
    for (int i = 0; i < n; i++)
        scanf("%d", &a[i]);
}

void swap(int *a, int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}

void sort(int *a, int n)
{
    for (int i = 0; i < n - 1; i++)
        for (int j = i + 1; j < n; j++)
            if (a[i] > a[j])
                swap(&a[i], &a[j]);
}

void print(int *a, int n)
{
    for (int i = 0; i < n; i++)
        printf("%d ", a[i]);
}

int main()
{
    int a[N];
    int n;
    scanf("%d", &n);
    input(a, n);
    sort(a, n);
    print(a, n);
    return 0;
}

#include<stdio.h>
void AscendingOrder(int n, int score[])
{
int j = 0;
for (j = 0; j < n - 1;j++)
{
int i = 0;
for (i = 0; i < n - 1 - j; i++)
{
int num = 0;
if (score[i] > score[i + 1])
{
num = score[i];
score[i] = score[i + 1];
score[i + 1] = num;
}
}
}

}
int main()
{
int n = 0; int score[50] = { 0 };
scanf("%d", &n);
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d",&score[i]);
}
AscendingOrder(n, score);
for (i = 0; i < n-1; i++)
{
printf("%d ", score[i]);

}
printf("%d\n", score[n-1]);
return 0;

}