2&0 2022-04-19 14:45 采纳率: 100%
浏览 26
已结题

VS2019运行问题

输入只能输入一次

img

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
struct 
{
    int num;
    char name[10];
    char sex;
    char job;
    union
    {
        int clas;
        char position[10];
    }category;
}person[2];
int main()
{
    int i;
    for (i = 0; i < 2; i++)
    {
        printf("please enter the data of person:\n");
        scanf_s("%d %s %c %c", &person[i].num, &person[i].name, &person[i].sex, &person[i].job);
        if (person[i].job == 's')
            scanf_s("%d", person[i].category.clas);
        else if (person[i].job == 't')
            scanf_s("%s", person[i].category.position);
        else
            printf("Input error!");
    }
    printf("\n");
    printf("No.    name    sex job class/position\n");
    for ( i = 0; i < 2; i++)
    {
        if (person[i].job == 's')
            printf("%-6d%-10d%-4c%-4c%10d\n", person[i].num, person[i].name, person[i].sex, person[i].job,
                person[i].category.clas);
        else
            printf("%-6d%-10d%-4c%-4c%10d\n", person[i].num, person[i].name, person[i].sex, person[i].job,
                person[i].category.position);
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2022-04-19 14:53
    关注

    完整代码如下:

    #include<stdio.h>
    struct
    {
        int num;
        char name[10];
        char sex;
        char job;
        union
        {
            int clas;
            char position[10];
        }category;
    }person[2];
    int main()
    {
        int i;
        for (i = 0; i < 2; i++)
        {
            printf("please enter the data of person:\n");
            scanf_s("%d %s %c %c", &person[i].num, person[i].name,9, &person[i].sex,1, &person[i].job,1);
            if (person[i].job == 's')
                scanf_s("%d", &person[i].category.clas);
            else if (person[i].job == 't')
                scanf_s("%s", person[i].category.position,9);
            else
                printf("Input error!");
        }
        printf("\n");
        printf("No.    name    sex job class/position\n");
        for (i = 0; i < 2; i++)
        {
            if (person[i].job == 's')
                printf("%-6d%-10d%-4c%-4c%10d\n", person[i].num, person[i].name, person[i].sex, person[i].job,
                    person[i].category.clas);
            else
                printf("%-6d%-10d%-4c%-4c%10s\n", person[i].num, person[i].name, person[i].sex, person[i].job,
                    person[i].category.position);
        }
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月19日

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分 合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备