【发布时间】:2022-01-03 06:40:59
【问题描述】:
我有多个数组,我需要返回客户输入的订单的值,这些数组有重复的值,所以即使在下订单时将它们从低到高排序后,他也会获取重复的值。如何删除重复的? 前任。 int testA1[] = { 25000, 20000, 29499, 10000, 20000, 29000, 25000, 20000 , 25000 , 10000 }; int order1 = 3;
#include<stdio.h>
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];
}
if(order > size || order < 0){
return -1;
}
else{
return tempArray[order];
}
}
【问题讨论】:
-
你应该看看stackoverflow中的类似问题(如果你学习如何适应其他人的解决方案来解决你的问题,这对你来说会更好),这里有一个例子stackoverflow.com/questions/28757237/…
-
排序去除重复后数组为
10000, 20000, 25000, 29000, 29499,所以array[3]为29000。 -
谢谢!!我来看看他们
-
排序并删除重复项后,它将是 10000、20000、25000、29000、29499,但我需要先删除重复项,否则它仍然是 25000
-
问题说你期望结果是
25000。但是order=3的正确结果是29000