芒果芭乐 2024-06-19 22:22 采纳率: 90.2%
浏览 1
已结题

员工管理系统的输出浏览的*号和内容不对齐乱糟糟

img


员工管理系统的输出浏览的*号和内容不对齐乱糟糟的,怎么解决这个问题呢谢谢大家谢谢了

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-19 22:22
    关注

    引自免费微信小程序:皆我百晓生

    为了解决输出对齐的问题,可以使用printf函数中的字段宽度设置来确保所有输出项在星号边框内对齐。以下是一个修改后的代码示例,它将确保每个输出字段都与星号边框对齐,并且看起来整洁有序。

    #include <stdio.h>
    
    typedef struct {
        long employeeID;
        char employeeName[20];
        char gender;
        int age;
        double wage;
        char address[100];
        char phone[20];
    } employee;
    
    void outall(employee str[], int n) {
        int i;
        for(i = 0; i < n; i++) {
            printf("\n");
            printf("* 工号:%10ld *\n", str[i].employeeID);
            printf("* 姓名:%19s *\n", str[i].employeeName);
            printf("* 性别:%2c         *\n", str[i].gender);
            printf("* 年龄:%3d             *\n", str[i].age);
            printf("* 工资:%12.2f       *\n", str[i].wage);
            printf("* 住址:%99s *\n", str[i].address);
            printf("* 电话:%19s *\n", str[i].phone);
            printf("\n");
        }
    }
    
    int main() {
        // 假设这里填充了数组str并设置了n
        employee str[10]; // 示例数组大小
        int n = 1; // 假设有1个元素
        outall(str, n);
        return 0;
    }
    

    在上述代码中,%10ld%19s等格式字符串确保了字段宽度,使得输出即使包含不同长度的数据也能保持对齐。例如,%10ld保证工号字段占据10个字符的宽度,而%19s则确保姓名字段占据19个字符的宽度,以此类推。这将确保所有输出行在星号边框内整齐对齐。

    此外,为了使输出更加美观,可以在每个输出字段后添加固定数量的空格,直到达到下一个星号的位置。这样,即使字段内容较短,输出也会自动填充至指定宽度,从而保持整体格式的一致性。在上述代码中,我已经调整了字段宽度和空格数以适应给定的输出格式需求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月19日

悬赏问题

  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme
  • ¥15 为什么我明明有这个文件调试器还显示错误?
  • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码
  • ¥15 matlab2017
  • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41