うほっ いい課題。 とでもいいのでしょうか。 最初の人は阿部さんですよね。
つっこみどころが多くてどこからどう説明したらいいのか解らないので、そこは他の人にまかせます。
とりあえずざっくりと作ってみました。 動作確認はしてません。
エラーチェックも、読み込んだデータの整合性のチェックもしてません。
何も無い改行だけの入力を受け取ると、入力ループを抜けます。
#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#define BUFFER_SIZE 256
#define NUMBER 128
#define NAME_SIZE 32
struct PROFILE{
char name[NAME_SIZE];
float height;
char bloodType;
};
void printProfile(PROFILE *pf)
{
printf("\t名前: %s\n\t身長: %f\n\t血液型: %c\n\n",
pf->name, pf->height, pf->bloodType);
}
int main()
{
int i, count;
struct PROFILE man[NUMBE[/url];
char buf[BUFFER_SIZE];
count = 0;
while(count < NUMBER && fgets(buf, BUFFER_SIZE, stdin)){
if(*buf == '\n') break;
strcpy(man[count].name, strtok(buf, " "));
man[count].height = (float)atof(strtok(NULL, " "));
man[count].bloodType = *strtok(NULL, " ");
count++;
}
for(i = 0;i<count;i++){
printf("%d 人目\n", i);
printProfile(&man);
}
return 0;
}
追記:
000を入力すると終わりなのですね。 読み飛ばしてました。
人の文章はにょろんとしか読まない癖があるらしくしばしばこういう事があります。 ごめんなさい。
