##情報
タイトルの説明に
は、学生や教師を含む複数の人のデータが含まれています。学生のデータには、数、名前、性別、職業、クラスが含まれます。教師のデータには、番号、名前、性別、職業、役職が含まれます。生徒と教師に含まれるデータが異なることがわかります。ここで、構造体の共用体を使用して、これらのデータを同じテーブルに格納する必要があります。構造は次のように定義されています。
構造体{
int num;
文字名[10];
チャーセックス;
charジョブ;
ユニオン{
intクラス;
char position [10];
}カテゴリー;
};
上記の構造で、ジョブアイテムがs(学生)の場合、5番目のアイテムはクラス(クラス)です。ジョブアイテムがt(教師)の場合、5番目のアイテムは位置(位置)です。
複数の人のデータを入力し、ユニオンを含む上記の構造体配列に保存して出力します。
入る
最初の行には整数nがあります。これは、次のn行がそれぞれn人のデータを表すことを意味します。nが100を超えないようにしてください。
次のn行では、各行にスペースで区切られた5つの項目があります。最初の4つの項目は、人の番号(整数)、名前(9を超えないスペースのない文字列)、性別(文字、mまたはf)、および職業(文字、sまたはt)です。4番目の項目がsの場合、5番目の項目はクラスを示す整数です。4番目の項目がtの場合、5番目の項目はスペースを含まない長さが9以下の文字列であり、位置を示します。
出力
は入力と同じフォーマットで合計n行あり、読み込まれたすべての内容が出力されます。
行末出力に注意してください。
サンプル入力
2
101 Liが501 fsは
102王MTの教授を
サンプル出力
101 Li fs 501
102 Wang mt prof
共用体アクセス方式、共用体変数名。内部変数名
#include <bits/stdc++.h>
using namespace std;
struct staff
{
char name[20];
int num;
char job;
char sex;
union{
int classes;
char position[10];
}category;
}*stu;
int main() {
int n;
scanf("%d",&n);
while(n--)
{
scanf("%d %s %c %c",&stu->num,stu->name,&stu->sex ,&stu->job);
if(stu->job=='s')
{
scanf("%d",&stu->category.classes);
printf("%d %s %c %c %d\n",stu->num,stu->name,stu->sex ,stu->job,stu->category.classes);
}
else
{
scanf("%s",stu->category.position);
printf("%d %s %c %c %s\n",stu->num,stu->name,stu->sex ,stu->job,stu->category.position);
}
}
return 0;
}
何が問題になっていますか??、アドバイスを求める(+ _ +)?(●ˇ∀ˇ●)