<分区>
printf("enter nation\n") 之后的行; to printf("输入 m 或 f\n");没有像代码块那样执行看不到它,因为它打印了两行,我没有机会在两者之间输入任何东西。这个问题总是在我使用 struct 时发生
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct emp
{
int salary;
int age;
char name[10];
char m:1;
char nation:1;
};
int main()
{
int i,k;
char g,n;
char name2[10];
struct emp x[3];
for(i=0;i<3;i++)
{
printf("enter name\n");
scanf("%s",&name2);
strcpy(x[i].name,name2);
printf("enter salary\n");
scanf("%d",&x[i].salary);
printf("enter age\n");
scanf("%d",&x[i].age);
printf("enter nation\n");
看不到接下来的 3 行并跳转输入 m 或 f
scanf("%c",&n);
if(n=='e'){x[i].nation==0;}
else {x[i].nation==1;}
printf("enter m or f\n");
也看不到那些线条
scanf("%c",&g);
if(g=='f'){x[i].m=0;}
else if(g=='m'){&x[i]==1;}
}
for(k=0;k<3;k++)
{
if(x[i].nation=='e')
{
puts(x[i].name);
printf("%d\n",x[i].salary);
printf("%d\n",x[i].age);
if(x[i].m==0)
printf("female\n");
else {printf("male\n");}
printf("egyptian");
}
}
return 0;
}