#include <stdio.h>
#include<string.h>
struct
{
int num;
char name[20];
char sex;
char job;
union
{
int classno;
char position[10];
}type;
}person[2];
void main()
{
int i;
for(i=0;i<2;i++)
{
printf("input teach or student:");
scanf("%s,%d,%s,%c,",&person[i].job,&person[i].num,person[i].name,&person[i].sex);
if(person[i].job=='a')
{
printf("input classno:");
scanf("%d",&person[i].type.classno);
}
else
if(person[i].job=='t')
{
printf("input job:");
scanf("%s",person[i].type.position);
}
else
{
printf("error!");
}
}
printf("\n");
for(i=0;i<2;i++)
{
if(person[i].job=='a')
{
printf("%d ",person[i].num);
printf("%s ",person[i].name);
printf("%c ",person[i].sex);
printf("%c ",person[i].job);
printf("%d\n",person[i].type.classno);
}
if(person[i].job=='t')
{
printf("%d ",person[i].num);
printf("%s ",person[i].name);
printf("%c ",person[i].sex);
printf("%c ",person[i].job);
printf("%s\n",person[i].type.position);
}
}
}
代码输出显示不完整,中间两个数据不显示,还有第一个数据应该是1,2。结果全部是0
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- qzjhjxj 2023-01-28 20:47关注
第22行里:scanf("%s,%d,%s,%c,",&person[i].job,&person[i].num,person[i].name,&person[i].sex); 输入语句里各参数间不要用 ','逗号间隔,改为用空格间隔即可,输入语句改为:scanf(" %c %d %s %c",&person[i].job,&person[i].num,person[i].name,&person[i].sex); 即可。
修改如下,供参考:#include <stdio.h> #include<string.h> struct { int num; char name[20]; char sex; char job; union { int classno; char position[10]; }type; }person[2]; void main() { int i; for(i=0;i<2;i++) { printf("input teach or student:"); scanf(" %c %d %s %c",&person[i].job,&person[i].num,person[i].name,&person[i].sex); //scanf("%s,%d,%s,%c,",&person[i].job,&person[i].num,person[i].name,&person[i].sex);修改 if(person[i].job=='a') { printf("input classno:"); scanf("%d",&person[i].type.classno); } else if(person[i].job=='t') { printf("input job:"); scanf("%s",person[i].type.position); } else { printf("error!"); } } printf("\n"); for(i=0;i<2;i++) { if(person[i].job=='a') { printf("%d ",person[i].num); printf("%s ",person[i].name); printf("%c ",person[i].sex); printf("%c ",person[i].job); printf("%d\n",person[i].type.classno); } if(person[i].job=='t') { printf("%d ",person[i].num); printf("%s ",person[i].name); printf("%c ",person[i].sex); printf("%c ",person[i].job); printf("%s\n",person[i].type.position); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥100 角动量包络面如何用MATLAB绘制
- ¥15 merge函数占用内存过大
- ¥15 Revit2020下载问题
- ¥15 使用EMD去噪处理RML2016数据集时候的原理
- ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
- ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
- ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
- ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
- ¥15 如何在炒股软件中,爬到我想看的日k线
- ¥15 seatunnel 怎么配置Elasticsearch