c语言--共用体函数--操作输入输出时不正常的问题。
本帖最后由 小泉向西流 于 2014-6-6 14:36 编辑今天看了小甲鱼老师的c语言的视频,第059讲, 讲的共用体部分的内容。
#include<stdio.h>
struct
{
int num;
char name;
char sex;
char job;
union
{
int class;
char position;
}category;
}person;
void main()
{
inti, n;
printf("Please input the number of the records:");
scanf("%d",&n);
printf("Please input records!\n\n");
for(i=0;i<n;i++)
{
printf("Please input the num: ");
scanf("%d",&person.num);
printf("Please input the name: ");
scanf("%s",person.name);
printf("Please input the sex <M/F>: ");
scanf("%c",&person.sex);
printf("Please input the job <t/s>: ");
scanf("%c",&person.job);
if(person.job=='s')
{
printf("Plaese input the class: ");
scanf("%d",&person.category.class);
}
else if(person.job=='t')
{
printf("Plaese input the position: ");
scanf("%s",person.category.position);
}
else
{
printf("inpur error!\n\n");
}
}
printf("\n\n");
printf("There are %d records:\n", n);
printf("No.\tname\tsex\tjob\tclass/position\n");
for(i=0;i<n;i++)
{
if(person.job=='s')
{
printf("%-6d%-8s %-7c %-6c %-6d\n", person.num, person.name, person.sex, person.job, person.category.class);
}
else
{
printf("%-6d%-8s %-7c %-6c %-6s\n", person.num, person.name, person.sex, person.job, person.category.position);
}
}
}
输出结果:
提示输出不正常,导致输入也不正常。
但编译可以通过,无error 无warning。
为什么会出现这种情况呢?求大神帮忙开导下。
本帖最后由 小泉向西流 于 2014-6-5 21:07 编辑
我自己加了一个n, 可以限定输入数据单元的个数。
其他的,依据框图写的。
期望出现视频中的这种效果。(增加部分: 要先选择要输入的结构体元素的个数。其他不变)
有人来解答吗?
{:1_1:}{:1_1:}
快来大神啊。
页:
[1]