<問題>
aまたはbの文字を最大10回繰り返し入力し、配列に格納する。配列について、各文字の連続は縮約して、画面に表示する。
<入力処理について>
入力の1文字を、文字型配列valuesに格納する。この処理を、aまたはb以外の文字やコントロールzが入力されるまで繰り返す。
<実行結果>
aaabbaabaa (入力) ababa (出力)
aabbc ab
解答例 #include <stdio.h> #includeint main (void) { char values[10]; char value, before; int n, i; n = 0; /* 最大10個 読む */ while (n < 10) { if(scanf("%c", &value) == EOF) break; if (value != 'a' && value != 'b') break; values[n] = value; n++; } /* 配列の中を確かめるなら for (i = 0; i < n; i++) printf("%c", values[i]); printf("\n"); */ before = 'c'; /* aでもbでもない、何か */ for (i = 0; i < n; i++) if (before != values[i]) { printf("%c", values[i]); before = values[i]; } printf("\n"); return 0; }