运行起来总是有问题,大家帮忙看看吧
本帖最后由 、__乔夜 于 2013-10-18 23:17 编辑#include <stdio.h>
struct
{
int num;
char name;
char sex;
char job;
union
{
int clas;
char position;
}type;
}person;
int main()
{
int i;
for(i=0;i<2;i++)
{
printf("请输入号码:");
scanf("%d",&person.num);
printf("请输入姓名:");
scanf("%s",&person.name);
printf("请输入性别:");
scanf("%c",&person.sex);
printf("请输入职业:");
scanf("%c",&person.job); //这样为什么会出错?!!
if(person.job=='s')
{
printf("请输入班级:");
scanf("%d",&person.type.clas);
}else
{
if(person.job=='t')
{
printf("请输入职位:");
scanf("%s",person.type.position);
}else
{
printf("输入错误!");
}
}
}
printf("\n");
printf("No. name sex job class/position\n");
for(i=0;i<2;i++)
{
if(person.job=='s')
{
printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
person.sex,person.job,person.type.clas);
}else
{
printf("%-6d%-10s%-4c%-4c%-10s\n",person.num,person.name,
person.sex,person.job,person.type.position);
}
}
return 0;
}
为什么每次输入到“请输入姓名”的时候就直接跳到“请输入职业”啊?:cry
你居然没报错我复制过去编译下近20个错误 #include <stdio.h>
struct
{
int num;
char name;
char sex;
char job;
union
{
int clas;
char position;
}type;
}person;//定义错误,不是person.
int main()
{
int i;
for(i=0;i<2;i++)
{
printf("请输入号码:");
scanf("%d",&person.num);
printf("请输入姓名:");
scanf("%s",&person.name);
printf("请输入性别:");
scanf("%c",&person.sex);
printf("请输入职业:");
scanf("%c",&person.job); //这样为什么会出错?!!
if(person.job=='s')
{
printf("请输入班级:");
scanf("%d",&person.type.clas);
}
else
{
if(person.job=='t')
{
printf("请输入职位:");
scanf("%s",person.type.position);
}
else
{
printf("输入错误!");
}
}
}
printf("\n");
printf("No. name sex job class/position\n");
for(i=0;i<2;i++)
{
if(person.job=='s')
{
printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
person.sex,person.job,person.type.clas);
}
else
{
printf("%-6d%-10s%-4c%-4c%-10s\n",person.num,person.name,
person.sex,person.job,person.type.position);
}
}
return 0;
}
太多英文,看不懂 多去了解一下scanf在用它吧 结构体里面有共用体,类似于柔性数组 混鱼币的~~~~~~~~~~~ 混鱼币的~~~~~~~~~~~ 还没学到这里,来拿奖励!!!
#include <stdio.h>
typedef struct person {
int num;
char name;
char sex;
char job;
union
{
int clas;
char position;
}type;
}Person,*ptr_person;
int
main() {
Person person;
ptr_person s=&person;
int i;
printf("请输入号码:");
scanf("%d",&person.num);
printf("请输入姓名:");
scanf("%s",s->name);
printf("请输入性别:");
scanf("%s",&person.sex);
printf("请输入职业:");
scanf("%s",&person.job);
if(person.job=='s')
{
printf("请输入班级:");
scanf("%d",&(person.type.clas));
}
else
{
if(person.job=='t')
{
printf("请输入职位:");
scanf("%s",person.type.position);
}
else
{
printf("输入错误!\n");
}
printf("\n");
printf("No. name sex job class/position\n");
if(person.job=='s')
{
printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
person.sex,person.job,person.type.clas);
}
else
{
printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
person.sex,person.job,s->type.clas);
}
}
return 0;
}
你输入2次干嘛,都是同一个结构体,不是自取其辱么??
页:
[1]