鱼C论坛

 找回密码
 立即注册
查看: 3684|回复: 0

共用体输出问题

[复制链接]
发表于 2013-4-8 21:02:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. #include <stdio.h>

  2. struct
  3. {
  4.        int num;
  5.        char name[10];
  6.        char sex;
  7.        char job;
  8.        union
  9.        {
  10.               int banji;
  11.               char position[10];//职位
  12.        }category;//类型
  13. }person[2];

  14. void main()
  15. {
  16.        int i;

  17.        for(i = 0;i < 2;i++)
  18.        {
  19.               printf("Please input the num:");
  20.               scanf("%d",&person[i].num);
  21.               printf("Please input the name:");
  22.               scanf("%s",&person[i].name);
  23.               getchar();
  24.               printf("Please input the sex:");
  25.               scanf("%c",&person[i].sex);
  26.               getchar();
  27.               printf("Please input the job:");
  28.               scanf("%c",&person[i].job);

  29.               if(person[i].job=='s')
  30.               {
  31.                      printf("Please input the banji:");
  32.                      scanf("%d",&person[i].category);
  33.               }
  34.               else
  35.               {
  36.                      if(person[i].job=='t')
  37.                      {
  38.                             printf("Please input the position:");
  39.                             scanf("%s",&person[i].category);
  40.                      }
  41.                      else
  42.                      {
  43.                             printf("Error!Please enter the job again:");
  44.                             scanf("%c",&person[i].job);
  45.                      }
  46.               }
  47.        }

  48.        printf("\n\nnum\tname\tsex\tjob\tbanjin/position\n\n");
  49.        for(i = 0;i < 2;i++)
  50.        {
  51.               printf("%d\t%s\t%c\t%c\t",person[i].num,person[i].name,person[i].sex,person[i].job);
  52.               if(person[i].job=='s')
  53.               {
  54.                      printf("%d\n",person[i].category);
  55.               }
  56.               else if(person[i].job=='t')
  57.               {
  58.                      printf("%10s\n",person[i].category);
  59.               }
  60.        }
  61. }
复制代码
为什么输出共用体的时候
printf("%10s\n",person[i].category);
%s中间不加数据就要报错,不能输出。

小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-4 08:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表