PROG 3.2 数を10個入力するか、9を入力するまで

<問題>

入力される数を10個、配列に格納し、入力された数を出力する。
ただし、9を入力されると、そこまでで入力を終了し、入力された数を出力する。

<実行結果>

数字を入力:1
数字を入力:2
数字を入力:3
数字を入力:4
数字を入力:5
数字を入力:6
数字を入力:7
数字を入力:8
数字を入力:10
数字を入力:11
1 2 3 4 5 6 7 8 10 11 (← 出力 10個入力した場合)


数字を入力:1
数字を入力:2
数字を入力:3
数字を入力:4
数字を入力:5
数字を入力:6
数字を入力:7
数字を入力:8
数字を入力:9
1 2 3 4 5 6 7 8



解答例

#include <stdio.h>

int main(void) {
    int num[10]; /* 格納用 配列 */
    int d;       /* 読み込み用 */
    int i, n;    /* numのインデックス(添え字)操作用 */

    n = 0; /* 添え字。10になったら11個目ということ */
    while (n != 10) {
        printf("数字を入力:");
        scanf(" %d", &d);
        if (d == 9) 
            break;
        num[n] = d;
        n++;
    }

    /* 配列操作の定番forループ */
    for (i = 0; i < n; i++) {
        printf("%d ", num[i]);
    }
    printf("\n");

    return 0;
}