• ベストアンサー

for文を用いて

みなさん、こんにちわ。C言語についてわからないことがありましたので、質問させていただきます。 C言語の本でfor文を用いて1~10までの和を求める例題は数多くありますが、(i=0,i<=10,i++) 1+2+1+2+1+2+… のように二種類のパターンがでてきたときはどのようにfor文で組めばよいのでしょうか?合計とその途中の計算も結果出力したいのですが、わからず困っています。ご教授よろしくお願いします。

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

  • ベストアンサー
回答No.3

>これで、合計の値はでますが、 出ないと思いますが・・・ やりたいことが完全に理解できてませんが、文章を読む限りこういうことでしょうか? sum=0; printf("%d\n",sum); for(i=1;i<=N;i++){   sum=sum+x;   printf(%d\n",sum);   sum=sum+y;   printf(%d\n",sum); }

dai92_1981
質問者

お礼

ありがとうございました。 大変勉強になりました。

その他の回答 (2)

  • ency
  • ベストアンサー率39% (93/238)
回答No.2

質問とは直接関係ありませんが、ループカウンタベースで 1~N まで足すのであれば、 for ( i = 1; i <= N; i++ ) で良いのでは? ループカウンタ処理は、ループが何回まわるのかに注意して行うようにすると良いですよ。 …というわけで、私の場合は↓こんな感じ↓にします。 for ( i = 1, i <= 10, i++ ) { for ( j = 1, j <= 2, j++ ) { sum += j; } }

dai92_1981
質問者

補足

回答ありがとうございます。 一番目のfor文でi=1からスタート     二番目のfor文はj=1からスタート     計算は合計=前の合計+j(初期の合計=0として)     つまり一回目は1          次にj=2のとき     前の合計=1であるので     今回の合計=1+2=3 となります。これを応用して 各値を求めたいのですが、いまいちわかっておりません。(二重for文ですべての値をprintfを用いて出力させたい) (1)0 (2)0+x (3)0+x+y (4)2x+y (5)2X+2y (6)3x+2y  ……… for(i=0;i<=N;i+x){    for(j=0;j<=M ;j+y)    sum=sum+j } N,Mは互いに連成するとします。 これで、合計の値はでますが、printf関数はどこで入力すればよいのでしょうか? たびたび、すいませんがご教授お願いします。

回答No.1

まぁ、普通にやるとしたら for(i=0,i<=10,i++){ for(j=0,j<=2,j++){ sum=sum+j; }}

dai92_1981
質問者

補足

回答ありがとうございます。

関連するQ&A