Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
91f5c52077 | ||
|
|
fc9031adbd | ||
|
|
a7fd62eda4 | ||
|
|
c6fd4b300e
|
||
|
|
93a818088c
|
||
|
|
2e805ba8e6 | ||
|
|
2d3ffcf3f8 | ||
|
|
aa3538c14b | ||
|
|
a4a60a3d95 |
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
|
|||||||
userInput = inputNumber("Welche Zahl kommt doppelt vor: ");
|
userInput = inputNumber("Welche Zahl kommt doppelt vor: ");
|
||||||
measuredSeconds = stopTimer();
|
measuredSeconds = stopTimer();
|
||||||
|
|
||||||
duplicate = getDuplicate(numbers, numberOfElements+1);
|
duplicate = getDuplicate(numbers, numberOfElements);
|
||||||
|
|
||||||
// check result and update highscores
|
// check result and update highscores
|
||||||
if(userInput == duplicate)
|
if(userInput == duplicate)
|
||||||
|
|||||||
@@ -19,16 +19,27 @@ unsigned int *createNumbers(unsigned int len)
|
|||||||
for (unsigned int i = 0; i < len; i++) {
|
for (unsigned int i = 0; i < len; i++) {
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
isDuplicate = 0;
|
||||||
numbers[i] = rand () % upperLimit + 1;
|
numbers[i] = rand () % upperLimit + 1;
|
||||||
binTree = addToTree(binTree, &numbers[i], sizeof(unsigned int), compare, &isDuplicate);
|
binTree = addToTree(binTree, &numbers[i], sizeof(unsigned int), compare, &isDuplicate);
|
||||||
} while (isDuplicate);
|
} while (isDuplicate);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int duplicate = numbers[rand () % len];
|
unsigned int duplicate = numbers[rand () % len];
|
||||||
int indexDuplicate = rand () % len;
|
int indexDuplicate;
|
||||||
numbers[len] = numbers[indexDuplicate];
|
|
||||||
|
do {
|
||||||
|
indexDuplicate = rand() % len;
|
||||||
|
} while (numbers[indexDuplicate] == duplicate);
|
||||||
|
|
||||||
|
if (numbers[len-1] != duplicate) {
|
||||||
|
numbers[len-1] = numbers[indexDuplicate];
|
||||||
|
}
|
||||||
|
|
||||||
numbers[indexDuplicate] = duplicate;
|
numbers[indexDuplicate] = duplicate;
|
||||||
|
|
||||||
|
clearTree(binTree);
|
||||||
|
|
||||||
return numbers;
|
return numbers;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,12 +65,19 @@ unsigned int getDuplicate(const unsigned int numbers[], unsigned int len)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
qsort((void*)numbers, len, sizeof(unsigned int), compare);
|
unsigned int *copy = malloc (sizeof(unsigned int) * len);
|
||||||
|
memcpy (copy, numbers, sizeof(unsigned int) * len);
|
||||||
|
|
||||||
|
qsort(copy, len, sizeof(unsigned int), compare);
|
||||||
|
|
||||||
for (int i = 0; i < len-1; i++) {
|
for (int i = 0; i < len-1; i++) {
|
||||||
if (numbers[i] == numbers [i+1]) {
|
if (copy[i] == copy [i+1]) {
|
||||||
return numbers[i];
|
unsigned int result = copy [i];
|
||||||
|
free (copy);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
|
free (copy);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user