fishyuyee 2023-02-08 22:02 采纳率: 100%
浏览 18
已结题

关于#c++#的问题:程序没法运行不知道怎么回事,求解答将员工信息按照职工号大小排序再在输出到磁盘文件中保存

程序没法运行不知道怎么回事,求解答
将员工信息按照职工号大小排序再在输出到磁盘文件中保存。


#include<iostream>
#include<fstream>
using namespace std;
struct employee
{
    int num;//职工号
    string name;//姓名
    int age;//年龄
    int mon;//工资
};
int main()
{
    struct employee temp;
    struct employee emp[5] =
    {
        {002,"wang",56,3000},
        {001,"li",34,4000},
        {004,"zhu",23,5000},
        {003,"bao",24,6000},
        {050,"chao",19,3000}
    };//输入信息
    for (int i = 0; i <= 4; i++)
    {
        for (int j = 0; j <= 4 - i; j++)
        {
            if (emp[j].num >emp[j + 1].num)
            {
                emp[j] = temp;
                emp[j] = emp[j + 1];
                emp[j + 1] = temp;
            }
        }
    }
    //冒泡排序
    ofstream infile("职工表");
    for (int i = 0; i <= 4; i++)
    {
        infile << emp[i].num;
        infile << emp[i].name;
        infile << emp[i].age;
        infile << emp[i].mon;
    }
    infile.close();
    return 0;
}
  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-02-09 13:54
    关注

    改动处见注释,供参考:

    #include<iostream>
    #include<fstream>
    using namespace std;
    struct employee
    {
        int num;//职工号
        string name;//姓名
        int age;//年龄
        int mon;//工资
    };
    int main()
    {
        struct employee temp;
        struct employee emp[5] =
        {
            {2,"wang",56,3000},
            {1,"li",34,4000},
            {4,"zhu",23,5000},
            {3,"bao",24,6000},   //......
            {50, "chao",19,3000} //{050,"chao",19,3000}  修改
        };//输入信息
        for (int i = 0; i < 4; i++)  //(int i = 0; i <= 4; i++)  修改
        {
            for (int j = 0; j < 4 - i; j++)  // (int j = 0; j <= 4 - i; j++)  修改
            {
                if (emp[j].num > emp[j + 1].num)
                {
                    temp = emp[j];      //emp[j] = temp;  修改
                    emp[j] = emp[j + 1];
                    emp[j + 1] = temp;
                }
            }
        }
        //冒泡排序
        ofstream infile("职工表");
        for (int i = 0; i <= 4; i++)
        {
            infile << emp[i].num << " " << emp[i].name << " " << emp[i].age << " " << emp[i].mon << endl;  //修改
        }
        infile.close();
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 创建了问题 2月8日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分