一个关于共用体的问题
下面这段源代码编译通过无误,但执行时却不能得到正确结果,我是在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);
}
}