- ベストアンサー
奇数の足し段
初心者です。 キーボードから値を入力して、1から入力された値までの奇数の和を求めて出力するプログラムを作成します。 ただし、for文で完成させます。 また、0 や負数が入力された場合は合計値を0と表示出来るように したいのですが? ご理解のある方助言願います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
0から10まで教えてください、ってのは感心しませんね。自力で努力して分からないところを手助けしてもらうようにしましょう。 ということで、考え方というか処理構造だけ擬似コードで示します。 メイン関数 { /* 変数の宣言 */ 整数型 入力値、和; 整数型 カウンタ; 和=0; キーボードから値を入力する; if(入力値が正の数なら){ for(カウンタ=1から入力値まで、カウンタを2増加){ 和=和+カウンタ; } } 和を表示する; リターン; } #2の方が書かれた += というのは、例えば a+=2なら a = a+2; のことです。
その他の回答 (3)
- maronii_now
- ベストアンサー率0% (0/8)
どの環境でプログラムを作成されているのかは分かりませんので 入力値を取得する部分・表示する部分は割愛しますね。 入力値をint InputDataとします。 int Sum; // 合計 int i; int MaxOdd; // 最大奇数 Sum = 0; // 合計を0にする // 0以下であれば if( InputData<=0 ) { return;// 終了 } // 偶数のとき(2で割り切れるはず) if( InputData%2==0 ) { MaxOdd = InputData-1; // 最大奇数は入力値より一つ下の値 } // 奇数のとき else { MaxOdd = InputData;// そのまま } // 合計を求める for( i=1 ; i<=MaxOdd ; ) { Sum = Sum + i;// iをプラスする i=i+2;//次の奇数へ進める } あとはSumを表示するだけです
お礼
とても理解しやすい回答ありがとう御座います。
- edomin
- ベストアンサー率32% (327/1003)
#1です。 全く判らないと言うことですか? 入力された値を変数「inp_n」とすると for(i=1;i<=inp_n;i+=2){ でいいと思いますが・・・。
- edomin
- ベストアンサー率32% (327/1003)
for文なら、1から初めて「++」するところを「+=2」にすれば?
補足
早速、回答ありがとう御座います。 +=2? どの様なプログラムでしょうか? よろしく願い致します。
お礼
とても理解しやすい回答ありがとう御座います。 ありがとう御座いました。