怎么搞啊c语音好难啊

img


啊这,我需要代码啊,我需要源代码去实现这个功能,本人用的dev c++

你这个可以用冒泡排序,(这是比较简单的排序),至于名字,你可以参考一下东方博宜的1314题

你题目的解答代码如下:

#include <stdio.h>
#include <stdlib.h>

typedef struct student
{
    char name[10];
    int score;
} stu;

//快速排序
void quick_sort(stu num[], int low, int high )
{
    int i,j;
    stu tmp,temp;
    i = low;
    j = high;
    tmp = num[low];   //任命为中间分界线,左边比他小,右边比他大,通常第一个元素是基准数
    if(i > j)  //如果下标i大于下标j,函数结束运行
    {
        return;
    }
    while(i != j)
    {
        while(num[j].score <= tmp.score && j > i)
        {
            j--;
        }

        while(num[i].score >= tmp.score && j > i)
        {
            i++;
        }

        if(j > i)
        {
            temp = num[j];
            num[j] = num[i];
            num[i] = temp;
        }
    }

    num[low] = num[i];
    num[i] = tmp;

    quick_sort(num,low,i-1);
    quick_sort(num,i+1,high);
}

int main()
{
    int i, n;
    printf("人数:");
    scanf("%d", &n);
    stu a[n];
    for (i = 0; i < n; i++)
    {
        printf("姓名:");
        scanf("%s", a[i].name);
        printf("成绩:");
        scanf("%d", &a[i].score);
    }
    quick_sort(a, 0, n - 1); //调用快排函数,将a排序
    for (i = 0; i < n; i++)
    {
        printf("%11s", a[i].name);
    }
    printf("\n");
    for (i = 0; i < n; i++)
    {
        printf("%11d", a[i].score);
    }
    return 0;
}

img

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

img