回答c ++

时间:2018-07-17 01:30:42

标签: c++

您好,您得到了一个数组表和一个问题。三个最高的数据及其对应的部门季度和年份。我应该如何使用c ++正确正确地做到这一点?

int Man[] = { 18080,18961,18985,18761,17821,19021,18452,20000 };
int Infra[] = { 4922,4904,4993,5076,4970,4900,4718,4757 };
int Ser[] = { 13898,14424,14290,14362,12623,13139,13775,15081 };
int Trans[] = { 7382,7323,7304,7675,7147,7335,6972,7740 };
int Others[] = { 1398,1438,1414,1435,1361,1420,1450,1476 };

数组四分之一是数组的数目,即2015年和2016年的2年。...在数组0-3和4-7之间分配

如果我的c ++术语不好,希望大家都能理解。谢谢

1 个答案:

答案 0 :(得分:0)

您可以开始编写一个最大的函数,如:

int easy_max(int[] array, int from, int to) {
    if (from < to){ //2 or more elements
       //divide
        int max_index_1 = easy_max(array, from, from + (from-to)/2); 
        int max_index_2 = easy_max(array, from + (from-to)/2 + 1, to); 

        if(max_index_1 == -1 || max_index_2 == -1)
            return -1; //Forward the error if there is one

        //conquer
        if(array[max_index_1] > array[max_index_2])
            return max_index_1;
        else
            return max_index_2;
    }
    if (from == to) return from; //Recursion anchor
    else if (from > to) return -1; //Invalid Input
}

因此您可以评估每个数组的最大值。请注意,您在这里只需要注意访问现有的阵列空间。

如果您了解这一点,则可以尝试进入列表以获取前n个元素。通常,您可能会订购列表(但不要忘记索引:尊敬的季度...属于哪个季度)​​。为此,有一些复杂的标准功能,例如http://www.cplusplus.com/reference/list/list/sort/