一个关于共用体的问题

fengyoujing 2003-08-30 11:31:01
下面这段源代码编译通过无误,但执行时却不能得到正确结果,我是在vc6.0底下编译的,请教各位原因。
#include <stdio.h>

struct
{ int num;
char name[20];
int age;
char rela;
union
{ int time;
char position[10];
}category;
}person[2];

main()
{ int i;
for (i=0;i<2;i++)
{scanf("%d %s %d %c",&person[i].num,person[i].name,
&person[i].age,&person[i].rela);
if (person[i].rela=='f')
scanf("%d",person[i].category.time);
else if (person[i].rela=='g')scanf("%s",person[i].category.position);
else printf("input error!");
}
printf("\n");
printf("No. name age rela time/position\n");
for (i=0;i<2;i++)
{if (person[i].rela=='f')
printf("%-6d%-10s%-6d%-3c%-6d\n",person[i].num,person[i].name,
person[i].age,person[i].rela,person[i].category.time);
else printf("%-6d%-10s%-6d%-3c%-6s\n",person[i].num,person[i].name,
person[i].age,person[i].rela,person[i].category.position);
}
}
...全文
38 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
想请教一下,main()没有返回类型是为什么?我是初学者,边看书边上论坛.所以问题可能很幼稚,多多包含
  • 打赏
  • 举报
回复
呵呵,谭浩强的c吧?
fengyoujing 2003-08-30
  • 打赏
  • 举报
回复
呵呵,解决了,谢谢楼上
gaoyonggang 2003-08-30
  • 打赏
  • 举报
回复
#include <stdio.h>

struct
{ int num;
char name[20];
int age;
char rela;
union
{ int time;
char position[10];
}category;
}person[2];

void main()
{ int i;
for (i=0;i<2;i++)
{scanf("%d %s %d %c",&person[i].num,person[i].name,
&person[i].age,&person[i].rela);
if (person[i].rela=='f')
scanf("%d",&person[i].category.time);//int 需加&
else if (person[i].rela=='g')scanf("%s",person[i].category.position);
else printf("input error!");
}
printf("\n");
printf("No. name age rela time/position\n");
for (i=0;i<2;i++)
{if (person[i].rela=='f')
printf("%-6d%-10s%-6d%-3c%-6d\n",person[i].num,person[i].name,
person[i].age,person[i].rela,person[i].category.time);
else printf("%-6d%-10s%-6d%-3c%-6s\n",person[i].num,person[i].name,
person[i].age,person[i].rela,person[i].category.position);
}
}
可能是你打掉了&.

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧