qq_32043167 2020-01-01 10:22 采纳率: 0%
浏览 682

请教大佬oj题目 计算职工工资问题

oj上的题,为什么过不了?

#include<stdio.h>
struct Employee{
    char name[10];
    float Basic,Variable,Expenditure,Payroll;
};
void Sort(struct Employee *p,int n)
{
    struct Employee a;
    int i,j;
    for(i=0;i<n;i++)
    for(j=i;j<n;j++)
    {
        if(p[i].Payroll>p[j].Payroll||(p[i].Payroll==p[j].Payroll&&p[i].Basic>p[j].Basic)||(p[i].Payroll==p[j].Payroll&&p[i].Basic==p[j].Basic&&p[i].Variable>p[j].Variable))
        {
            a=p[i];
            p[i]=p[j];
            p[j]=a;
        }
    }
}
int main()
{
    struct Employee emp[100];
    int i,n,Cas=0;
    while(scanf("%d",&n)!=EOF)
    {
        Cas++;
        for(i=0;i<n;i++)
        {
            scanf("%s%f%f%f",emp[i].name,&emp[i].Basic,&emp[i].Variable,&emp[i].Expenditure);
            emp[i].Payroll=emp[i].Basic+emp[i].Variable-emp[i].Expenditure;
        }
        Sort(emp,n);
        printf("Case #%d:\n",Cas);
        for(i=0;i<n;i++)
            printf("%10s%10.2f\n",emp[i].name,emp[i].Payroll);
    }
    return 0;
}

题目:给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序按照排序规则顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。
排序规则:按照实发工资从小到大排序,如果实发工资相同的则按照基本工资从小到大排序,如果实发工资和基本工资都相同,则按照浮动工资从小到大排序。

注意:main函数已经给定(如下所示)。
请将程序补充完整。
提交时只需要提交自己补充的代码部分,不需要提交给定的main函数的代码部分。

  • 写回答

1条回答 默认 最新

  • qsmyhsgwlczrwh 2020-01-02 15:47
    关注
    void Sort(struct Employee *p,int n)
    {
        struct Employee a;
        int i,j;
        for(i=0;i<n;i++)
        for(j=i;j<n;j++)
        {
            if(p[i].Payroll>p[j].Payroll||(p[i].Payroll==p[j].Payroll&&p[i].Basic>p[j].Basic)||(p[i].Payroll==p[j].Payroll&&p[i].Basic==p[j].Basic&&p[i].Variable>p[j].Variable))
            {
                a=p[i];
                p[i]=p[j];
                p[j]=a;
            }
        }
    }
    

    循环中把j=i改为j=0试试,因为你的这个循环好像并不能实现题目中的排序规则

    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示