2009年9月22日火曜日

第12回 for文①

お題:
第11回と同じプログラムをfor文を使って作成する
n個の整数に関して数値をそれぞれ入力し、その整数の合計を求めるプログラム
①はじめに、整数の個数nを入力させる
②n個分の整数を入力する
③合計値を出す

プログラム実行例

整数の個数nを入力してください
n=3
a0=3
a1=4
a2=5
よって合計値は
3+4+5=12
です

必須事項
・for文、配列を使う事

注意事項
・合計値の式はfor文で工夫
・配列の数え方 (a[0],a[1],a[2]・・・)
・配列は事前にたくさん用意すると対応できる (百個とか)

予備知識:
for文は以下のように書きます。

for ( ① ; ② ; ③ ) {
    命令文;
}

for文はwhile文と同じ、ブロックの中の命令文を繰り返して実行するものです。①、②,③で、繰り返しを制御します
①は初期値のようなものです。for文の繰り返しの1回目に1度だけ実行されます。
②は繰り返しの条件です。この条件に合う時だけ繰り返します。
③はブロックの中の命令文が実行された後に実行されます。

例えば、変数iを0から5まで表示したい場合は、

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

となります。i=0が初期値で、iが5になるまで、printfでiを表示します。printfで表示した後はi++が実行され、iが1増えて、また最初にもどり条件に合うかどうか判断されます。合わない場合、つまりiが6以上になるとfor文から抜けます。

解答は9月24日に掲載します。それまでにプログラムを作成し、
・プログラム文
・その実行ファイル
をメールに添付して以下のアドレスに送ってください。

解答、質問はこちらまで
cosmo-cleaner@za.pial.jp

---------------------------------------------------------------

解答例

1

2
3

4
5

6
7
8
9

10

11
12
13
14
15
16

#include <stdio.h>

int main () {
    int n,a[100],i,sum;

    puts("整数の個数nを入力してください");
    printf("n=");    scanf("%d",&n);

   for ( i=0; i<=n-1; i++) {
        printf("a%d = ",i);
        scanf("%d",&a[i]);
    }

    puts("よって合計値は");

   for ( i=0; i<=n-2; i++) {
        printf("%d + ",a[i]);
        sum += a[i];
    }
     printf("%d = %d",a[n-1],sum + a[n-1]);
}

実行例は次の通りです

整数の個数nを入力してください
n=4
a0 = 123
a1 = 456
a2 = 789
a3 = 321
よって合計値は
123 + 456 + 789 + 321 = 1689

解説

第11回のwhile文よりスッキリしたプログラムになりました。

赤い部分、青い部分は第11回と対応しています。

答えられる範囲で質問いつでも受け付けます。
cosmo-cleaner@za.pial.jp

0 件のコメント:

コメントを投稿