こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C言語でmからnまでの合計を求めるプログラム

これで動かないのですが、何が違っているのか、教えていただけますか。

#include <stdio.h>
int main(void)
{
int m, n, sum, i, w ;
printf("mからnまでの合計を求めます\n\n");
printf("m >> ");
scanf(" %d", &m);
printf("n >> ");
scanf(" %d", &n);

sum=0;

if(m>n){
w=m;
m=n;
n=w;
}
sum=0;
i=m;

while(i<=n){
sum=sum+i;
i=i+1;
}

printf("%d から %d の合計 = %d\n",m,n,sum);
return 0;
}

投稿日時 - 2011-05-20 15:23:55

QNo.6750771

困ってます

質問者が選んだベストアンサー

動かないって、どういう状態?

普通に動くけど…。

※処理系くらいは書こうよ。

因みに、二つ目の「sum=0;」は当然要らない。

投稿日時 - 2011-05-20 15:31:25

お礼

ご回答ありがとうございました。
最初のsum=0;が不要でした。また、最初のsum=0;を残して、ご指摘のように二つ目のsum=0;を消しても動きました。

投稿日時 - 2011-05-20 21:49:09

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

試してみましたが,私の考えるExpectedが出てきました。

何通りかIdeone.comで動かしてみました。
https://ideone.com/lvxED
#2/#3/#4,それぞれExpectedは何なのでしょうか。また,それはどういう計算で出た物でしょうか。
それらがわかれば,「何が違っているのか」を回答できるかもしれません。

投稿日時 - 2011-05-20 18:28:56

お礼

ご回答とURLありがとうございました。
最初のsum=0;が不要でした。W8004で説明されていました。

投稿日時 - 2011-05-20 21:53:26

ANo.4

1) コンパイルしてない。
C のプログラムを実行するには、たいていの環境はコンパイルが必要だよ。

2) コンパイルを忘れている。
C のプログラムを更新したら、また、コンパイルが必要だよ。

3) コンパイルできないという意味の質問。
ソースファイルを保存するときの日本語コードがシステムのコードと違っているのかな?
日本語を全て削除するとコンパイルできるかもね。

4) コンパイルしてできたファイルを実行しても、「mからnまでの合計を求めます」が表示されないという意味の質問。
別のファイルを実行しているかも。
フルパスで実行してみるといいよ。

5) 実行すると、間違った合計が計算されて、表示される。
質問するときに、貼り付けたコードはどこも間違ってないから、貼り付けたコードをソースファイルに貼り付けて、コンパイルして、試してみて。

6) 上の 1) ~ 5) のどれでもない。
使っているシステムに問題があるか、何か致命的に勘違いしているかもね。

投稿日時 - 2011-05-20 16:11:16

お礼

ご回答ありがとうございました。
最初のsum=0;が不要でした。W8004で説明されていました。

投稿日時 - 2011-05-20 21:52:50

ANo.3

scanfでは最後に\nとか入れないといけないんじゃなかったでしたっけ?
そこで止まったりしそうな気がします

投稿日時 - 2011-05-20 15:50:21

お礼

ご回答ありがとうございました。
最初のsum=0;が不要でした。W8004で説明されていました。

投稿日時 - 2011-05-20 21:52:41

ANo.2

1.どのような処理をさせたいのですか?
2.「動かない」とはどういうことですか?
3.このプログラムには入力を求める場所がありますが、何を入れましたか?

「どう作るべきなのか」が判らないとアドバイス出来ません

結果が違う、エラーが出る、PCが動かなくなる…etc
せめてそれが書かれていれば一応答えられるとは思いますが
エラーを吐かない時点で「動いてはいる」のですが…3がありますので一概には言えません

ちなみにintとして扱える範囲外であったり、全角数字だとエラーは出ると思います


>No.1さん
中身から考えるに多分「処理系」って書いても理解できないと思う…

投稿日時 - 2011-05-20 15:45:41

お礼

ご回答ありがとうございました。
最初のsum=0;が不要でした。W8004で説明されていました。

投稿日時 - 2011-05-20 21:52:24

あなたにオススメの質問