• 締切済み

このプログラムの処理の流れを教えて下さい

初心者です。構造体のプログラムの勉強をしているのですが、このプログラムの処理の流れを考えたのですがよくわかりませんでした。理解を深めるために必要なので、どうかよろしくお願いします。 #include<stdio.h> #include<string.h> int main(void) { struct roll { char name[32]; float height; char bloodType[3]; }; struct roll data[128]; int i; for(i = 0;i < 128;i++){ printf("%d人目のデータ: ", i + 1); scanf("%s %f %s", &data[i].name, &data[i].height, &data[i].bloodType); if( data[i].name[0] == '0', data[i].height == 0, data[i].bloodType[0] == '0' ){ break; } } printf("名前\t身長\t血液型\n"); for(i = 0;i < 128;i++){ if( data[i].name[0] == '0', data[i].height == 0, data[i].bloodType[0] == '0' ){ break; } printf("%s\t%3.1f\t%s\n", data[i].name, data[i].height, data[i].bloodType); } } <実行例> 1人目のデータ: 太郎 175.5 A ←キーボードからそれぞれ入力する 2人目のデータ: 花子 169.0 B ←キーボードからそれぞれ入力する 3人目のデータ: 一郎 180.4 O ←キーボードからそれぞれ入力する 4人目のデータ: 0 0 0 ← 0 0 0 とキーボードから入力すると終わる 名前 身長 血液型 太郎 175.5 A 花子 169.0 B 一郎 180.4 O

みんなの回答

回答No.2

#include<stdio.h> #include<string.h> int main(void) { struct roll { /* 構造体の宣言 */ char name[32]; float height; char bloodType[3]; }; struct roll data[128]; /* struct roll型の配列型 data の宣言 */ int i; /* int型 i の宣言 */ for(i = 0;i < 128;i++){ /* 入力用ループ(0~127) */ printf("%d人目のデータ: ", i + 1); /* 入力を促す表示 */ scanf("%s %f %s", &data[i].name, &data[i].height, &data[i].bloodType); /* 各データの入力 */ if( data[i].name[0] == '0', data[i].height == 0, data[i].bloodType[0] == '0' ){ break; /* BloodType に'0'が入力されたら終了 */ } } printf("名前\t身長\t血液型\n"); /* 項目名表示 */ for(i = 0;i < 128;i++){ /* 表示用ループ */ if( data[i].name[0] == '0', data[i].height == 0, data[i].bloodType[0] == '0' ){ break; /* BloodType が'0'なら終了 */ } printf("%s\t%3.1f\t%s\n", data[i].name, data[i].height, data[i].bloodType); /* データ表示 */ } /* "return 0"がない。 */ }

nadonado
質問者

お礼

丁寧にありがとうございました。おかげでわかりました。

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.1

かなり質問が漠然としているので、何を答えたら良いかの検討がつきません。 構造体についての勉強ということですが、プログラムの流れとどう関係があるのですか? もう少し知りたいポイントを絞って質問されるとよろしいかと。 一応、簡単な流れ 1.データをキーボードから入力(000が入力されるまで) 2.入力されたデータをprintで表示 くらいしか思いつきません。

関連するQ&A