某公司有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不就行了?