プロが教える店舗&オフィスのセキュリティ対策術

C++についての問題です。
200個の数値があり、
freq[0],freq[1],...,freq[8],freq[9] に,0 以上10未満のデータ数,10 以上20 未満のデータ数,…,80 以上90 未満のデータ数,90 以上100 未満のデータ数がそれぞれ入るようにする問題です。


#include <stdio.h>
int main() {
int x[] = {30,94,91,42,7,45,37,63,5,51,65,
97,49,82,35,41,2,62,50,86,35,53,98,62,33,2,
79,15,18,13,68,76,32,47,1,11,93,66,92,90,40,
57,3,59,64,10,39,11,1,91,57,86,29,56,91,97,
35,64,56,79,74,95,6,98,16,13,39,35,99,11,36,
11,14,12,42,45,37,13,10,33,57,81,69,86,89,7,
21,40,16,36,27,12,77,15,28,50,7,91,84,24,75,
56,29,29,26,31,56,61,20,65,34,72,87,32,44,67,
37,69,7,72,76,90,43,9,89,97,12,9,77,14,68,28,
17,12,58,51,43,35,84,74,7,92,30,50,67,30,0,98,
1,73,11,29,80,82,57,71,50,85,99,46,38,36,59,
11,33,98,60,3,44,74,98,77,54,62,39,81,56,78,
12,71,27,60,84,96,73,58,31,78,73,98,6,16,77,
51,44,10,30,48,1,29};
int freq[10]={0};
int i,n;

この部分だけをうまくやればできるはずなんですが、よくわかりません。
↓↓↓
for(){
for(i=0,i<10,i++){
if(i*10<=x[] && x[]<(i+1)*10)
freq[i]++;
}
}
↑↑↑

for ( i = 0 ; i < 10 ; i++ ) {
printf("%d 以上%d 未満のデータ数:%d", i*10, (i+1)*10, freq[i]);
}
while(1);
return 0;


10で割るやり方は使わずに、
0以上10未満ならカウントfreq[0]のカウントを1増やす、10以上20未満ならfreq[1]のカウントを1増やす……というのを繰り返しで処理して
それをxにある数値全部について繰り返しで処理するという二重構造だと思うのですが
『for』と『if』と『i』と『n』をどう組み立てていいかわかりません。

わかる方よろしくお願いします(>_<)
できればその部分を書いて解説いただけるとわかりやすくてありがたいです。

A 回答 (1件)

for (i = 0; i < 200; i++) {


freq[x[i] / 10]++;
}
    • good
    • 0
この回答へのお礼

ありがとうございます。
しかしnも使って10で割らないやり方を求めています。

先ほどfor二重使用で自己解決したので締め切ります。

お礼日時:2012/12/27 23:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!