問題
- 0101や1201のデータを、一旦記録してから一気に出力したい。データは3種類あり、今のままでは1つの配列に格納できない。
- ningen構造体 (氏名、性別、年齢)を定義、NINGEN型のデータ型を定義する。
- NINGEN型のデータを要素とする配列(最大10人分)を用いる。
Please input | name gender age (以下、4人分を連続入力) hanyu m 19 kasai m 41 takeuchi f 30 onoduka f 25 ^Z (control zとENTER) (UNIXでは、control d) 0 人目:name = hanyu gender = m age = 19 (配列の要素、NINGEN型データをプリント) 1 人目:name = kasai gender = m age = 41 2 人目:name = takeuchi gender = f age = 30 3 人目:name = onoduka gender = f age = 25 END
#include <stdio.h> /* NINGEN 型 ningen 構造体 */ typedef struct ningen { char name[31]; char gender; int age; } NINGEN ; int main (void) { NINGEN list[10]; int i,j; i = 0; j = 0; printf("Please input | name gender age\n"); /* 入力部 */ while ((i < 10 && scanf("%s %c %d", list[i].name, &list[i].gender, &list[i].age) != EOF)) { i++; } /* 出力部 */ while ( j < i ) { printf ("%2d 人目:name = %s gender = %c age = %d\n",j, list[j].name,list[j].gender,list[j].age ); j++; } printf ("END \n"); return(0); }
例:list[0]の構造体の、各メンバーの値をプリントするには