C语言问题急急急!!

某公司有10个员工,每个员工的纪录信息包括:员工号和年终奖金两项。请编程按照年终奖金由高到底的进行排序输出,并输出员工的其他相关信息。输出格式如下:

     序号       员工号          奖金(从高到低)

【要求】(1)排序过程用函数实现;

               (2)在主函数main中调用该函数,输出结果。

定义一个数据结构加冒泡排序即可

typedef struct _worker
{
    int nid;
    float money;
}worker;

void sort(worker *p,int n)
{
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-i-1;j++)
        {
            if(p[j].money < p[j+1].money)
            {
                worker w = p[j];
                p[j] =  p[j+1];
                p[j+1] = w;
            }
        }
}
void main()
{
    worker w[10];
    int i;
    for(i=0;i<10;i++)
        scanf("%d %f",&w[i].nid,&w[i].money);
    sort(w,10);
    printf("序号\t员工号\t奖金\n");
    for(i=0;i<10;i++)
        printf("%d\t%d\t%.2f\n",i+1,w[i].nid,w[i].money);
}

 

#include<bits/stdc++.h>
using namespace std;

struct person{
    int id;
    int price;
};
bool cmp(person p1,person p2){
    return p1.price<p2.price;
}
int main()
{
    int i,j,n,n1=0,n2=0,n3=0,x;
    scanf("%d",&n);
    person p[n+1];
    for(i=0;i<n;i++){
        scanf("%d %d",&p[i].id,&p[i].price);
    }
    sort(p,p+n,cmp);
    for(i=0;i<n;i++){
        printf("%d %d %d\n",i,p[i].id,p[i].price);
        
    }
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦。如果有您比较满意的答案 / 帮您提供解决思路的答案,请点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m

 

为什么不用c++?,vector 调用std sort不就行了?