#include /* 3. Napisz funkcje, ktora usunie duplikaty z tablicy a) tablica jest juz posortowana niemalejaco 1, 2, 2, 3, 4, 4, 5, 5, 5 => 1, 2, 3, 4, 5 b) dowolna tablica, takze nieposortowana (elementy musza pozostac na miejscu o ile sie da, czyli nie mozna sortowac, ale mozna uzyc tablicy pomocniczej) Tablica przed usunieciem duplikatow: 1 2 2 3 4 4 5 5 5 Tablica po usunieciu duplikatow: 1 2 3 4 5 Tablica przed usunieciem duplikatow: 5 5 4 3 2 1 1 1 1 Tablica po usunieciu duplikatow: 5 4 3 2 1 Tablica przed usunieciem duplikatow: 5 1 2 2 3 4 4 5 5 5 Tablica po usunieciu duplikatow: 5 1 2 3 4 */ void removeDuplicates(int arr[], int *n) { int temp[*n]; // Tablica pomocnicza do przechowywania unikalnych elementów int j = 0; for (int i = 0; i < *n; i++) { int found = 0; // Sprawdzenie czy aktualny element juz istnieje w tablicy pomocniczej for (int k = 0; k < j; k++) { if (arr[i] == temp[k]) { found = 1; break; } } // Jesli nie zostal znaleziony, dodajemy go do tablicy pomocniczej if (!found) { temp[j++] = arr[i]; } } // Skopiowanie unikalnych elementow z tablicy pomocniczej z powrotem do oryginalnej tablicy for (int i = 0; i < j; i++) { arr[i] = temp[i]; } *n = j; // Aktualizacja wartosci n (nowa dlugosc tablicy) } void printArray(int array[], int size) { for (int i = 0; i < size; i++) { printf("%d ", array[i]); } printf("\n"); } int main() { int arr[] = {1, 2, 2, 3, 4, 4, 5, 5, 5}; //int arr[] = {5, 1, 2, 2, 3, 4, 4, 5, 5, 5}; //int arr[] = {5,5,4,3, 2,1,1,1,1}; int n = sizeof(arr) / sizeof(arr[0]); printf("Tablica przed usunieciem duplikatow: "); printArray(arr, n); removeDuplicates(arr, &n); printf("\nTablica po usunieciu duplikatow: "); printArray(arr, n); return 0; }