2D 配列の頻度を計算するプログラムを作成しましたが、すべての行 (すべての i) の結果を取得したいと考えています。しかし、for ループを追加するfor(i=0;i<S1;i++)
と、1 行目の右の周波数が計算され、たとえば 2 行目では 1 行目の周波数が 2 行目に追加されます。 ? ありがとう :)
編集:私の問題をより明確にするために:数字を追加すると{10 20 30 30 30 30 20 30 10}
私は次の結果を受け取ることを期待する必要があります:
1st row 0-9 0
10-19 1
20-29 1
30-39 1 from the row {10 20 30}
2nd row 0-9 0
10-19 0
20-29 0
30-39 3 from the row {30 30 30}
3rd row 0-9 0
10-19 1
20-29 1
30-39 1 from the row {20 30 10}
これらの結果を得る代わりに、私は得る
1st row
0-9 0
10-19 1
20-29 1
30-39 1
from the row {10 20 30}
2nd row 0-9 0
10-19 2
20-29 2
30-39 2 from the row {30 30 30}
3rd row 0-9 0
10-19 3
20-29 3
30-39 3 from the row {20 30 10}
#include <stdio.h>
#define S1 3
#define COUNTER 11
#define S2 3
int main() {
float A[S1][S2];
int i, j, k, low, high;
int group[COUNTER] = {0,0,0,0,0,0,0,0,0,0,0};
for (i = 0; i < S1; i++) {
for (j=0; j < S2; j++) {
scanf("%f", &A[i][j]);
}
}
for(i=0; i < S1; i++) {
for(j=0; j < S2; j++) {
++ group[(int)(A[0][j] + 0.5 ) / 10];
}
printf("\n");
printf("GROUP RANGE FREQUENCY\n\n") ;
for(k = 0; k < COUNTER; k++) {
low = k * 10;
if(k == 10)
high = 100;
else
high = low + 9;
printf("%2d %3d to %3d %d\n",
k+1, low, high, group[k]);
}
}
getch();
}