【发布时间】:2022-01-03 04:04:30
【问题描述】:
我应该做的是对价格列表进行排序并按顺序选择其中一个值,但数组中有重复的价格如何删除它们?
我有 9 个数组,我需要对它们进行排序并打印出订单的价值(最低价、次低价等),抱歉没有清除。
int lowestPrice(int array[], int size, int order){
int tempArray[size];
for (size_t i = 0; i < size; i++)
tempArray[i] = array[i];
for (size_t i = 0; i < size; i++)
for (size_t j = i; j < size; j++)
if (tempArray[j] < tempArray[i]) {
int tmp = tempArray[i];
tempArray[i] = tempArray[j];
tempArray[j] = tmp;
}
int j = 0;
for (size_t i = 0; i < size -1; i++){
if(tempArray[i] != tempArray[i+1])
{
tempArray[j] = tempArray[i];
j++;
} tempArray[j] = tempArray[i-1];
}
return tempArray[order];
}
【问题讨论】:
-
如果最低价格是重复价格,那就是最低价格。为什么要关心删除重复项?
-
@kan3 当您需要返回一个值时,不清楚为什么要这样做。
-
您的意思是您有一个可能无序的 x 个价格数组,其中一些可能是重复的,您需要将每个唯一价格按顺序排列,然后返回由 @987654322 指定的第 n 个价格@?
-
用户将订购本例中的价格之一 { 25000, 20000, 29499, 10000, 20000, 29000, 25000, 20000 , 25000 , 10000 };
-
所以您需要将该数组从小到大排序,去掉重复项,然后在
order位置返回价格?