#include <stdio.h>
#include <iostream>
struct {
int num;
char name[10];
char sex;
char job;
union {
int clas;
char position[10];
}category;
}s[100];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %s %c %c",&s[i].num,&s[i].name,&s[i].sex,&s[i].job);
if(s[i].job=='s') scanf("%d",&s[i].category.clas);
if(s[i].job=='t') scanf("%s",&s[i].category.position);
}
for(int i=0;i<n;i++)
{
if(s[i].job=='s') printf("%d %s %c %c %d\n",s[i].num,s[i].name,s[i].sex,&s[i].job,s[i].category.clas);
if(s[i].job=='t') printf("%d %s %c %c %s\n",s[i].num,s[i].name,s[i].sex,&s[i].job,s[i].category.position);
}
return 0;
}
#include <stdio.h>
#include <iostream>
struct {
int num;
char name[10];
char sex;
char job;
union {
int clas;
char position[10];
}category;
}s[100];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %s %c %c",&s[i].num,&s[i].name,&s[i].sex,&s[i].job);
if(s[i].job=='s') scanf("%d",&s[i].category.clas);
if(s[i].job=='t') scanf("%s",&s[i].category.position);
}
for(int i=0;i<n;i++)
{
if(s[i].job=='s') std::cout << s[i].num <<" "<< s[i].name <<" "<< s[i].sex << " "<<s[i].job <<" "<< s[i].category.clas << std::endl;
if(s[i].job=='t') std::cout << s[i].num <<" "<< s[i].name <<" "<< s[i].sex << " "<<s[i].job <<" "<< s[i].category.position << std::endl;
}
return 0;
}
1.为什么printf输出时会有错误,可是根据输出的s[i].category来看,比较的时候s[i].job应该是’s’或者’t’,不然没法if语句没法执行,那最终打印错误是为什么呢
2.class怎样作为变量名使用,如int class