映画のエンドロール観る派?観ない派?

#include <stdio.h>

int main(void)
{

int i, sum;

sum = 0;
for (i=1; i<=100; i++){
sum = sum + i;
}
printf("sum=%d\n", sum);

sum = 0; i= 1;
while (i <= 100) {
sum = sum + i;
++i;
}
printf("sum=%d\n", sum);

sum = 0; i = 1;
do {
sum = sum +i;
++i;
} while (i <=100);
printf("sum=%d\n", sum);

return 0;
}

上記のプログラムに修正を加えて、実行結果が

1+3+5+…+n の nを入力してください → 99をキーボードから入力(例)
sum=2500
sum=2500

となるようにしたいです。 nはキーボードから奇数を入力します。
奇数値 nをキーボードから入力して、1からnまでの奇数の総和を
計算するプログラムです。

超暇なときにでも回答お願いします。

A 回答 (5件)

#3、4です。



#4で書きましたが、質問とは合っていないようです。

質問のプログラムを実行すると、

sum=****
sum=****
sum=****

と3行表示されますが、質問の後半では、

> 1+3+5+…+n の nを入力してください → 99をキーボードから入力(例)
> sum=2500
> sum=2500

の2行しか表示させないんですよね?

どのループを削るか判らないので、適当に削ってください。
質問からは読み取れません。
    • good
    • 0

#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;
}

やっぱり「修正」じゃない…。
    • good
    • 0

#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;
}

こういうのを「修正」とは言わない。
    • good
    • 0

プログラムやるなら、これくらいの応用力は欲しいところなんですが....



・このプログラムは、同じ処理をする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関数を使うものでいいでしょう。
    • good
    • 0

で、なにがわからんのですか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報