- ベストアンサー
C言語のプログラムを修正してほしいです
- C言語のプログラムを修正してほしいです。修正後のプログラムでは、キーボードから奇数値を入力して、1からその値までの奇数の総和を計算します。
- 上記のC言語のプログラムを修正して、実行結果が1+3+5+...+nのnを入力してください→99をキーボードから入力すると、sum=2500となるようにしたいです。
- C言語のプログラムを修正してほしいです。プログラムの修正内容は、キーボードから奇数値nを入力して、1からnまでの奇数の総和を計算するようにすることです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3、4です。 #4で書きましたが、質問とは合っていないようです。 質問のプログラムを実行すると、 sum=**** sum=**** sum=**** と3行表示されますが、質問の後半では、 > 1+3+5+…+n の nを入力してください → 99をキーボードから入力(例) > sum=2500 > sum=2500 の2行しか表示させないんですよね? どのループを削るか判らないので、適当に削ってください。 質問からは読み取れません。
その他の回答 (4)
- edomin7777
- ベストアンサー率40% (711/1750)
#3です。 もしかして、「for」「while」「do」のループを使うって言うこと? #include <stdio.h> int main(void){ int i, j, sum; sum = 0; printf("1+3+5+…+n の nを入力してください>"); scanf("%d", &j); if(j%2 == 1){ for (i=1; i<=j; i+=2){ sum = sum + i; } printf("sum=%d\n", sum); sum = 0; i= 1; while (i <= j) { sum = sum + i; i+=2; } printf("sum=%d\n", sum); sum = 0; i = 1; do { sum = sum +i; i+=2; } while (i <=j); printf("sum=%d\n", sum); }else{ printf("奇数ではありませんでした。"); } return 0; } やっぱり「修正」じゃない…。
- edomin7777
- ベストアンサー率40% (711/1750)
#include <stdio.h> int main(void){ int i, j, sum; sum = 0; printf("1+3+5+…+n の nを入力してください>"); scanf("%d", &j); if(j%2 == 1){ for (i=1; i<=j; i=i+2){ sum = sum + i; } printf("sum=%d\n", sum); }else{ printf("奇数ではありませんでした。"); } return 0; } こういうのを「修正」とは言わない。
- kmee
- ベストアンサー率55% (1857/3366)
プログラムやるなら、これくらいの応用力は欲しいところなんですが.... ・このプログラムは、同じ処理をする3つの部分に分けられる、というのは理解してますか?(正確にはまったく同じではありませんが) ・その処理内容は理解してますか?変数sum,iの役割りは理解できていますか? ・上が理解できていれば、 どこまで足すかを、100ではなく変数nにする方法 1,2,3と「1から一つずつ増える値」ではなく、1,3,5と「1から二つずつ増える値」にする方法 はすぐにわかると思うのですがどうでしょうか? まずは「int i, sum;」のところを int i, sum, n; n=99 ; とでもして、変数nまでの奇数を足すプログラムに変更してみましょう。 キーボード入力は実は非常にやっかいなことです。実はCの標準には「キーボードから数値を入力する」機能はありません。 なんですが、とりあえずは、入門書や入門サイトの最初の方に載っている、scanf関数を使うものでいいでしょう。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
で、なにがわからんのですか?