标题:折磨我N久的一道貌似很简单的一道题!一个菜鸟的疑问
只看楼主
zwlcdh
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-2-8
 问题点数:0 回复次数:2 
折磨我N久的一道貌似很简单的一道题!一个菜鸟的疑问
#include<stdio.h>
struct
{int num;
char name[10];
char sex;
char job;
union
{int banji;
char position[10];
}category;
}person[2];
void main()
{int i;
for(i=0;i<2;i++)
{scanf("%d%s%c%c",&person[i].num,person[i].name,&person[i].sex,&person[i].job);
if(person[i].job=='s')scanf("%d",&person[i].category.banji);
else if(person[i].job=='t')scanf("%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%-10s%-3c%-6d\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.banji);
else printf("%-6d%-10s%-3c%-3c%-6s\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.position);
}
}
输入 101 li f s 501
102 wang m t professor
应该输出 No. Name sex job class/position
101 li f s 501
102 wang m t professor
可是怎么就不对呢!!!!我都纳闷两天了!
搜索更多相关主题的帖子: 疑问 折磨 
2007-04-11 08:43
lxzx36
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-9
得分:0 
不知道 你用共用体是什么意思
我帮你改了一下,你看看这个合你的意思不:
#include<stdio.h>
struct
{int num;
char name[10];
char sex[10];
char job[10];
char banji[10];
char position[10];
}person[2];
void main()
{int i;
char str[10];

for(i=0;i<2;i++)

{printf("input the information of number %d!\nNo. Name sex job class/position\n",i+1);
scanf("%d%s%s%s%s",&person[i].num,person[i].name,person[i].sex,person[i].job,str);
if(*person[i].job=='s')
strcpy(person[i].banji,&str);
else if(*person[i].job=='t')
strcpy(person[i].position,&str);
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%-6s%-3s%-6s%-5s\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].banji);
else if(*person[i].job=='t')
printf("%-6d%-6s%-3s%-6s%-5s\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].position);
}
getch();
}
2007-04-11 18:28
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
得分:0 
scanf("%d%s%c%c",&person[i].num,person[i].name,&person[i].sex,&person[i].job);
感觉这里有问题,其它没有看。后面会吃掉回车,注意%s%c这个。

2007-04-11 19:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-130894-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.869046 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved