题目描述:
有两个人(一个学生,一个teacher)。学生的数据中包括姓名,号码,性别,职业,班级。teacher的数据中包括姓名,号码,性别,职业,职务。要求用同一个表格来处理。
源码如下:
疑惑点:
结果不正确,不知道哪儿错了,求解答!
题目描述:
有两个人(一个学生,一个teacher)。学生的数据中包括姓名,号码,性别,职业,班级。teacher的数据中包括姓名,号码,性别,职业,职务。要求用同一个表格来处理。
源码如下:
应该是scanf的说明符需要修改,说明符在各个参数之间加上一个空格,就可以了,不加空格%c会把输入中的空格读入%c对应的变量,然后产生错误,修改如下:
#include <stdio.h>
struct {
int num;
char name[20];
char sex;
char job;
union{
int clas;
char p[10];
} A;
}B[2];
int main(void){
int i;
for(i=0;i<2;i++){
scanf("%d %s %c %c",&B[i].num,B[i].name,&B[i].sex,&B[i].job);
if(B[i].job=='s'){
scanf("%d",&B[i].A.clas);
}else if(B[i].job=='t'){
scanf("%s",B[i].A.p);
}else{
printf("error!");
}
}
printf("\n");
for(i=0;i<2;i++){
if(B[i].job=='s'){
printf("%d %s %c %c %d\n",B[i].num,B[i].name,B[i].sex,B[i].job,B[i].A.clas);
}else{
printf("%d %s %c %c %s\n",B[i].num,B[i].name,B[i].sex,B[i].job,B[i].A.p);
}
}
return 0;
}