<問題> 1桁の正の整数 (1〜9) の乱数を20個、配列に格納せよ。この配列中に7があれば「7があったよ」と出力する。複数あれば、繰り返し出力する。
<実行結果>
s[0] = 9
s[1] = 2
s[2] = 7
s[3] = 8
s[4] = 5
s[5] = 2
s[6] = 4
s[7] = 9
s[8] = 9
s[9] = 5
s[10] = 8
s[11] = 9
s[12] = 8
s[13] = 7
s[14] = 6
s[15] = 2
s[16] = 5
s[17] = 7
s[18] = 5
s[19] = 1
7があったよ
7があったよ
7があったよ
<ヒント> Cの絵本 p64 - p65 (配列。for ループを使った定番の処理)
<コメント> 教科書 71ページの話題(集合と探索)に関係
解答例 #include <stdio.h> #include <stdlib.h> #include <time.h> /* マクロ Nを20に */ #define N 20 int main (void) { int s[N]; int i; srand((unsigned)time(NULL)); /* 1桁乱数を作って、代入 */ for (i = 0; i < N; i++) /* 配列処理の定番パターン。以下、どれも同じ */ s[i]= rand()%9 + 1 ; /* 出力するループ */ for (i = 0; i < N; i++) printf("s[%d] = %d \n", i, s[i]); /* 7があるかを調べるループ */ for (i=0 ; ; ) return 0; }