ページ 11

5の倍数の和について教えてください。

Posted: 2009年5月21日(木) 23:06
by pu
みなさん。お世話になります。
C言語の勉強を始めてみたのですが、とにかくループ処理で引っかかってます。

5の倍数の和をもとめたいのですが(範囲は5以上150以下です)
以下の方法は全く違っていますか?

#include <stdio.h>
int main(void){

int input,n,sum

sum=0;
for(input=5;input<=150;input++){
if((input%3)==0 sum=sum+input);

}
printf("5の倍数の和は%dです\n",sum);

ritrun(0);

}

チンプンカンプンの内容でしたらごめんなさい。
どうかよろしくお願いします。

Re:5の倍数の和について教えてください。

Posted: 2009年5月21日(木) 23:22
by box
とりあえず、コンパイルエラーが出ないようにすることから始めましょう。
それから、「5の倍数の和」なのに

>(input%3)==0

これは明らかにおかしいですね。

Re:5の倍数の和について教えてください。

Posted: 2009年5月21日(木) 23:31
by pu
ごめんなさい。

(input%5)==0

の 間違いです。

Re:5の倍数の和について教えてください。

Posted: 2009年5月21日(木) 23:40
by box
>     int input,n,sum

文の最後にはセミコロンが必要です。

>     for(input=5;input<=150;input++){
>     if((input%3)==0 sum=sum+input);

inputを1ずつ増やしていくよりも、5ずつ増やしていけば、
5で割り切れるかどうかのチェックが不要になります。

>     ritrun(0);

スペルが違っています。return です。

Re:5の倍数の和について教えてください。

Posted: 2009年5月21日(木) 23:40
by ビギナー
int input,n,sum

セミコロン「;」が抜けています。

if文ですが

if(input%5==0)
   sum=sum+input;
カッコは1つあれば十分な気もします。


ritrun(0);

return(0);ですね。


150までの確認はしてないので、合ってるかどうかは定かではないですが、
まずはコンパイルできるものを貼ることをオススメします。

//下記は追記です

ハッカーさんと投稿時間と内容ががほぼかぶってしまいました。
すみません。

Re:5の倍数の和について教えてください。

Posted: 2009年5月21日(木) 23:57
by pu
> int input,n,sum

→  int input,n,sum;

文の最後にはカンマが必要です。

> for(input=5;input<=150;input++){
> if((input%3)==0 sum=sum+input);

→ for(input=5;input<=150;input=input+5){
sum=sum+input;

inputを1ずつ増やしていくよりも、5ずつ増やしていけば、
5で割り切れるかどうかのチェックが不要になります。

> ritrun(0);

→ return(0)

と いう感じでよろしいのでしょうか?

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 00:12
by pu
自分で考えておきながら・・・

#include <stdio.h>
int main(void){

int input,n,sum

scanf("%d\n",input);

for(input=5;input<=150;input=input+5){
sum=sum+i

......

などとすると 変数nはなんであるのか?いらないですか?

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 00:27
by kazuoni
>sum=sum+i

sum=sum+input

の記述ミスですか?

>変数nはなんであるのか?いらないですか?
上述のコードでは使っていないので、不要ですね。

>ビギナーさん
>ハッカーさんと投稿時間と内容ががほぼかぶってしまいました。
boxさんですよ^^;
ハッカーは昇進状態によるものです。

#ハッカーの称号を持つ御三方はたまにハッカーさんと間違われますね^^;

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 00:49
by pu
上記投稿に名前が未入力でした。
すみません<(_ _)>

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 00:51
by pu
あの~何度もすみません。

#include <stdio.h>
int main(void){

int input,n,sum

sum=0;
scanf(%d",&input);
for(n=5;n<=150;n=n+5){
sum=sum+n;

}
printf("5の倍数の和は%dです\n",sum);

return(0);
}

では だめでしょうか?

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 00:57
by kazuoni
>scanf(%d",&input);

これはただ標準入力から読み込むだけで、
変数inputは一度も使っていないようなので、
>int input;
>scanf(%d",&input);
の二つは必要ありません。

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 00:58
by pu
今度こそ?
だめでしょうか?

#include <stdio.h>
int main(void){

int input,n,sum;

scanf("%d",&input);
for(n=5;n<=150;n=n+5){
sum=sum+n;

}
printf("5の倍数の和は%dです\n",sum);

return(0);
}

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 01:03
by pu
みなさんに大変お世話になっておりますが、
もう 頭がもうろうとしてきました。

頭ひやして 再度考えてみます。

遅くまでありがとうございました。

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 01:09
by kazuoni
コードを載せる際はプレタグを使用してください。

>今度こそ?
>だめでしょうか?

No:33824はご覧になりましたか?

また、No:33825のコードでは、
sum+=sum+n;
の一回目でプログラムが止まるまたは結果がおかしな値になるはずです。
理由はsumの初期化ができおらず、
sum=不定値+n

としているからです。
sumを0で初期化またはfor文の前で0を代入してください。


ちなみにですが、コンパイル・実行していますか?
百聞は一見にしかずってことで一度実行してみてはいかがですか?
無償でVC++などがあります。

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 01:51
by pu
みなさんにいただいたヒントから
再度考えてみます。

本当にありがとうございました。

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 12:19
by lbfuvab
反則かもしれませんが、
1~30までの数値の和を5倍しては駄目なのでしょうか?

Re:5の倍数の和について教えてください。

Posted: 2009年5月22日(金) 18:28
by やそ
lbfuvab さんの
>反則かもしれませんが、
>1~30までの数値の和を5倍しては駄目なのでしょうか?

は、答えが欲しいだけならアリ。
規則性をもった繰り返しや+=を利用した足しこみなどの練習が主題であればナシ。
ですよね。

まあ、頭をクールダウンして考えてみるとのことですので、
次の答えを待ちましょう^^