#include #include typedef struct { char *name; /* 氏名 */ double height; /* 身長 */ double weight; /* 体重 */ } Health; Health *input_record(void); int main(void) { double bmi; Health *h; h = input_record(); bmi = h->weight / (h->height * h->height); printf("BMI(体格指数)は%fです。\n", bmi); printf("判定は"); if (bmi <= 17.5) printf("やせすぎです。\n"); else if(bmi <= 19.7) printf("やせ気味です。\n"); else if(bmi <= 24.1) printf("標準です。\n"); else if(bmi <= 26.3) printf("ふとり気味です。\n"); else printf("肥満です。\n"); free(h->name); free(h); return 0; } Health *input_record(void) { Health *ret = (Health *)malloc(sizeof(Health)); if ( ret == NULL ) { printf("メモリの割り当てに失敗しました。\n"); exit (EXIT_FAILURE); } ret->name = malloc(100 * sizeof(char)); if ( ret->name == NULL ) { printf("メモリの割り当てに失敗しました。\n"); exit (EXIT_FAILURE); } printf("氏名を入力してください。"); scanf("%s", ret->name); printf("%sの身長(m)を入力してください。", ret->name); scanf("%lf", &ret->height); printf("%sの体重(kg)を入力してください。", ret->name); scanf("%lf", &ret->weight); return ret; }