|
20個全部に値を入れないと、初期値の値のまま表示されます。
>for (i = 0; i < 20; i++) {
それと
> while(scanf("%s %lf %lf ", list[i].name, &list[i].taju, >&list[i].sintyo) != EOF) {
> i++;
> }
のままですと、20個以上のデータが入れれます。
ですので、変数をもう一つ用意して
int i = 0, j = 0;
printf("氏名、体重、身長を入力。(終了条件:Ctrl+Z)\n");
while(scanf("%s %lf %lf ", list[i].name, &list[i].taju, &list[i].sintyo) != EOF) {
i++;
if ( i == 20 ) break; /* list[ 20 ]の領域は用意していない */
}
/* 入力したデータまで表示 */
for ( j = 0; j < i; j++ ) {
のようにするとよいでしょう。
|