• 締切済み

教えてください。

下のプログラムで”全員計算できませんでした”を表示させたいんですが、if文を置く位置が全くわかりません。この位置だと10人全員が計算できない場合でも”全員計算~”と表示されてしまいます。誰か教えていただけないでしょうか? main() { float weight,height,s_weight,fatness; int sex,count,keisu,y_cnt,f_cnt,k_cnt,c_cnt,n_cnt; y_cnt=f_cnt=k_cnt=c_cnt=n_cnt=0; printf("*** 肥満度プログラム ***\n"); for(count=1;count<=10;count++) { printf("あなたの体重(Kg単位)=\n"); scanf("%f",&weight); printf("あなたの身長(m単位)=\n"); scanf("%f",&height); printf("あなたの性別(男=0/女=1)=\n"); scanf("%d",&sex); if(sex==0) keisu=22; else keisu=20; if(height>0 && weight>0) { s_weight=height*height*keisu; printf("標準体重=%fKg\n",s_weight); fatness=(weight-s_weight)/s_weight*100; printf("肥満度=%f%\n",fatness); if(fatness<-10.0) { printf("やせすぎです。\n"); y_cnt++; } else if(-10.0<=fatness && fatness<10.0) { printf("標準です。\n"); f_cnt++; } else if(10.0<=fatness && fatness<20.0 ) { printf("過体重です。\n"); k_cnt++; } else if(20.0<=fatness) { printf("あなたは超過体重です!\n"); c_cnt++; } } else { printf("計算できません。\n"); n_cnt++; } } printf("*** 肥満度統計結果 ***\n"); printf("やせ=%d人\n",y_cnt); printf("普通=%d人\n",f_cnt); printf("過体重=%d人\n",k_cnt); printf("超過体重=%d人\n",c_cnt); printf("計算できない人=%d人\n",n_cnt); if(n_cnt=0) { printf("全員計算できませんでした。\n"); } }

みんなの回答

回答No.1

if(n_cnt=0) { printf("全員計算できませんでした。\n"); } このif文ではn_cntに0を代入してしまい、常に"全員計算できませんでした"が表示されてしまいます。 n_cnt==0に修正するとうまく表示されますよ。

milch1114
質問者

お礼

すばやい回答ありがとうございます。n_cnt==10でできました。とても助かりました。どうもありがとうございました。

関連するQ&A