int main(void)
{
float weight, kei=0, n=0, heikin, max, min;
while(1){
printf("体重データを入力して下さい:");
scanf("%f",&weight);
if(weight==0)break;
kei = kei + weight;
n++;
if(n == 1){
kei = kei + 2;
n++;
}
if(max<weight)
max=weight;
if(min>weight)
min=weight;
}
heikin=kei/n;
printf("合計:%6.1f\n人数:%6.0f\n平均:%6.1f\n最大:%6.1f\n最小:%6.1f\n",
kei,n,heikin,max,min);
return 0;
}
というプログラムでデータがなくなった場合0を入力すれば終了するようにしたいのですが
0を押すと0もデータ扱いになりminが0とでてしまいますどこが悪いのでしょうか?ご指摘お願いします。
あともうひとつなのですが。
int main(void)
{
int kaijo=(①), i=1, n;
printf("n!を求めます.nを入力して下さい:");
scanf("%d", &n);
while(②)
(③);
printf("%d! = %d\n" ,i, kaijo);
(④);
}
return 0;
}
で階乗を作るプログラムなのですが①~④はどうすればいいんでしょうか?
どこがおかしやら・・・・
Re:どこがおかしやら・・・・
タイトルは、内容がわかるようにしてほしい。
ソースは、読みやすいように、pre タグで字下げしてほしい。
一つ目は、
#include <stdio.h> がない。(これは、コピーミスかな。)
"max"、"min"が、値が不定のまま"weight"と比較されている。
"n"(人数)は、整数なので"int"でいい。
if(n == 1){ kei = kei + 2; n ++; }が、意味不明。
いきなり 0 で終了すると、0除算エラーになる。
二つ目は、
間違っていてもいいので、まず自分で考えてみてください。
Re:どこがおかしやら・・・・
規約をきちんと読んでください。
コードを載せる際には、プレタグを使用し、見やすくしてください。
>0を押すと0もデータ扱いになりminが0とでてしまいますどこが悪いのでしょうか?
0の時、「終了します」みたいなメッセージを出力した後に、
return 0;
で終了すればよいと思います。
が、どのように終わり方を実装したいかがわからないので、
一概には言えないですが・・・。
#自分の回答を考える前に、フリオさんの御回答を先に解決してください。
>①~④はどうすればいいんでしょうか?
とりあえずヒントを。一応丸投げは禁止ですので^^;
1、階乗の答えを代入するものなので、初期化をしておく
2、階乗を求めるのに同じ動作を何回か行って求めたい。終わる条件は?
3、n=k(n>=k)の時の階乗の値を求める式
4、n=k+1を求めるためにしなければいけない式
一度考えてみてください。
コードを載せる際には、プレタグを使用し、見やすくしてください。
>0を押すと0もデータ扱いになりminが0とでてしまいますどこが悪いのでしょうか?
0の時、「終了します」みたいなメッセージを出力した後に、
return 0;
で終了すればよいと思います。
が、どのように終わり方を実装したいかがわからないので、
一概には言えないですが・・・。
#自分の回答を考える前に、フリオさんの御回答を先に解決してください。
>①~④はどうすればいいんでしょうか?
とりあえずヒントを。一応丸投げは禁止ですので^^;
1、階乗の答えを代入するものなので、初期化をしておく
2、階乗を求めるのに同じ動作を何回か行って求めたい。終わる条件は?
3、n=k(n>=k)の時の階乗の値を求める式
4、n=k+1を求めるためにしなければいけない式
一度考えてみてください。