Я составил программу, которая вычисляет частоту 2D-массива, и я хочу, чтобы она давала мне результаты для каждой строки (для каждого i). Но когда я добавляю цикл for for(i=0;i<S1;i++)
, он вычисляет частоту для первой строки вправо, а во втором, например, он добавляет частоты 1-й строки ко второй и т. Д. Как я могу предотвратить ее добавление частот? предложения? Спасибо :)для цикла добавляет результаты предыдущих циклов
редактировать: чтобы сделать мою проблему более ясно: Если я добавить число {20 30 10 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();
}
Ваше форматирование кода просто умопомрачительно. – 2013-04-13 20:52:07
, пожалуйста, уточните вопрос ... –