合計 ← 0 i を 1 から 10 までかえて 合計 ← 合計 + i 合計を出力
ふつうの言葉で記述する利点として, 特別な作図ツールをつかわなくても テキストエディタで設計作業ができることがある. また, PAD 同様, 上記の設計結果をプログラムに変換するのも非常に簡単である.
さて, この方法を使って, 前回の小テストの解法を紹介しておこう. ここでは, 「段階的に詳細化する」という方法でいく. まず, 全体の処理の大枠を決めて, それをだんだん詳細にしていくのである.
まず, 最初のステップ:
データを配列に読み込む 0 から 9 までの数値の出現回数をそれぞれ求める 出現回数が最多のものを求める 結果を出力する
データの番号 j を 0 から 9 まで変えながら
数値を一つ読み込み
データ の j番目 ← 読み込んだ数値
数値 i を 0 から 9 まで変えながら
i の出現回数 ← 0
データの番号 j を 0 から 9 まで変えながら
データ の j番目 が i だったら
i の出現回数 ← i の出現回数 + 1
最多出現回数 ← 0
数値 i を 0 から 9 まで変えながら
i の出現回数 > 最多出現回数 ならば
最多出現回数 ← i の出現回数
最多出現数値 ← i
最多出現数値と最多出現回数を出力する
#include <stdio.h>
int main();
int main(){
int i;
int j;
int data[10];
int occur[10];
int max;
int max_data;
char line[80];
for(j=0; j<10; j++){
printf("data? ");
gets(line);
data[j] = atoi(line);
}
for(i=0; i<10; i++){
occur[i] = 0;
for(j=0; j<10; j++){
if(data[j] == i){
occur[i] ++;
}
}
}
max = 0;
for(i=0; i<10; i++){
if(occur[i] > max){
max = occur[i];
max_data = i;
}
}
printf("%d occured %d times.\n", max_data, max);
}
数値 i を 0 から 9 まで変えながら i の出現回数 ← 0 データの番号 j を 0 から 9 まで変えながら i ← データ の j番目 i の出現回数 ← i の出現回数 + 1