<問題 >1桁の正の整数 (1〜 9) の乱数を10個、配列に格納し、表示せよ。
7 が1つもなかったときは「7 がなかったよ」と出力し、あったときはその回数を出力する。たとえば「7 が3 回あったよ」と出力する。
<実行結果>
(たとえば)
s[0] = 6
s[1] = 7
s[2] = 4
s[3] = 3
s[4] = 4
s[5] = 1
s[6] = 4
s[7] = 7
s[8] = 4
s[9] = 7
s[1]に7があったよ
s[7]に7があったよ
s[9]に7があったよ
7が3回あったよ
(こちらも)
a[0] = 9
s[1] = 8
s[2] = 8
s[3] = 1
s[4] = 9
s[5] = 3
s[6] = 1
s[7] = 8
s[8] = 4
s[9] = 3
7がなかったよ
解答例 #include <stdio.h> #include <stdlib.h> #include <time.h> /* Nを10 */ #define N 10 int main (void) { int s[N]; int i; int flag = 0; /* 旗 7があったら1にする。0 false, 1 True */ int n; srand(time(NULL)); /* N個の乱数 */ 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]); /* STEP 1.1 7があるかどうかをチェック。flag変数に注意 */ /* STEP 1.2 7がなかったか。 あったなら、回数 */ getchar(); return 0; }