您好,您得到了一个数组表和一个问题。三个最高的数据及其对应的部门季度和年份。我应该如何使用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 ++术语不好,希望大家都能理解。谢谢
答案 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/