Соберите массивы в dev-c ++ - PullRequest
0 голосов
/ 04 мая 2019

У меня есть домашнее задание, которое просит подсчитать, сколько разных грибов было собрано за несколько дней, несколько раз в месяц, и расположить их в порядке возрастания по дням.

Значения:

11 - сколько строк (для для функции)

Первое число - дни, когда были собраны грибы

три других числа - различные виды грибов ( B , R и L )

Пример данных:

11

2 8 4 0

3 1 0 9

1 2 3 4

5 4 14 2

2 4 4 4

3 0 0 0

15 25 45 13

28 13 13 13

16 2 0 2

16 5 15 25

3 4 44 444

* числа повторяющихся дней показывают, что грибы собирались несколько раз в этот день

Я уже расставил их по порядку, но не могу объединить массивы (грибы)

* (n) обозначает число 11

void count (int D[], int B[], int R[], int L[], int n){
    for ( int i=0; i<n;i++){
        for ( int j=i+1; j<n;j++){
            if ( D[i]==D[j]  && B[i] > B[j] && R[i] > R[j] && L[i] > L[j] ) {
                ; B[i]+=B[j];R[i]+=R[j];L[i]+=L[j];
            } 
            if ( D[i] > D[j] ){
            swap(D[i],D[j]);swap(B[i],B[j]);swap(R[i],R[j]);swap(L[i],L[j]);  
            } 

        }
    }
}

что я должен получить:

1 2 3 4

2 12 8 4

3 5 44 453

5 4 14 2

15 25 45 13

16 7 15 27

28 13 13 13

Что я получил :

1 2 3 4

2 8 4 0

2 4 4 4

3 1 0 9

3 0 0 0

3 4 44 444

5 4 14 2

15 25 45 13

16 7 15 27

16 2 0 2

28 13 13 13

1 Ответ

0 голосов
/ 04 мая 2019

Хорошо. Я понял, что у вас есть массивы, которые представляют дни и виды грибов.

У меня есть несколько шагов, которые могут помочь вам понять:

1) Используйте структуру для представления записи, чтобы уменьшить количество массивов.

2) Реализовать функцию, которая сортирует массив этой структуры по атрибуту дня.

3) Реализовать функцию, которая принимает отсортированный массив (A1) (отсортированный по вышеуказанной функции), и в нем объявляет массив этой структуры и делает цикл по A1 и присваивает его значения другому массиву, если A1 [i -1] .day! = A1 [i] .day, и если вы обнаружите повторение, просто обновите его последние значения, а после циклов верните массив, объявленный в функции.

Надеюсь, что эти шаги дают вам подсказку.

...