将数组放到dev-c ++

时间:2019-05-04 20:05:04

标签: c++ dev-c++

我有一项作业要求计算几天,一个月中几次收集到多少不同的蘑菇,并按天升序排列

含义:

11-多少行(用于 for 函数)

第一个数字-收集蘑菇的天数

另外三个数字-不同类型的蘑菇( 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 :(得分:0)

好吧。我了解您拥有代表天数和蘑菇类型的数组。

我有一些步骤可以帮助您了解一些想法:

1)使用结构表示记录,以减少数组数。

2)实现一个函数,通过其day属性对该结构的数组进行排序。

3)实现一个接受排序数组(A1)(由上述函数排序)的函数,并在其中声明该结构的数组并循环到A1上,如果A1 [i -1] .day!= A1 [i] .day,如果发现重复,只需更新它的最后一个值,并在循环后返回函数中声明的数组。

希望这些步骤会提示您。