#include<stdio.h> typedef struct Health{ char name[16]; double height; double bmi; }Herlth; void hearth_pair_sort_by_bmi(Health *a,Hearth *b){ Hearth tmp; if(a->bmi > b->bmi){ tmp = *a; *a = *b; *b =tmp; } } int main(void) { FILE *fp; fp = fopen("health.txt","r"); printf("名前:\n"); ```実行例のように, ファイル health.txt の各行から「名前」「身長 (cm)」「体重 (kg)」各値を読み込んで, BMI 指数の降順に表示するプログラムを作成したいです. 条件はしたのようになっています ●BMI 指数 = 体重 (kg) ÷ (身長 (m) ×身長 (m)) ●数値表示の際は小数点以下 2 ケタまで表示 ●最大 16 人分のデータ入力に対応すること ●名前: 空白を含まない半角文字列 (最大 16 文字) ●身長: 単位 (cm) 浮動小数点数 ●体重: 単位 (kg) 浮動小数点数 [health.txt] Suzuki 172.5 64.8 Tanaka 150.2 48.3 Yamada 160.5 70.7 Saito 168.4 53.5 [実行例] 名前:Satou 身長:160.50 体重:70.70 BMI:27.45 名前:Mori 身長:172.50 体重:64.80 BMI:21.78 名前:Saito 身長:150.20 体重:48.30 BMI:21.41 名前:Yamamoto 身長:168.40 体重:53.50 BMI:18.87
どうぞ。していいですよ。
緊急の理由を述べてみて下さい。
基本は質問者の事情は知ったことではないですが、同情してくれる人もいるかもしれません。
続きをどうしたらいいのか見当がつきません
編集されたけど謎of謎で笑う
ぴえん(´;ω;`)
端的に言うと、あなたがその課題に取り組みたいって気持ちは伝わったけど、「だから何?」という話ですね。一体なににつまずいていて書けないのか、あなたは今どこまで書いたのか、多分授業課題かなんかだと思うのですがどういう制約が課されていたのか(qsortは使っていいのかとか)、そういう情報が0。
まずは 「(1)health.txt を読んで struct Healthの配列を作り、(2)そのままプリントする」を作りましょうか。
しかるのち、「BMIをキーにソートする」を用意して (1)と(2)の間に割り込ませて完成。