Упражнения на C: удаление дубликатов из заданного массива целых чисел
Программирование на C: упражнение 12 с решением
Напишите C-программирование для удаления дубликатов из заданного массива целых чисел.
Код C:
#include <stdio.h>
#include <stdlib.h>
static int remove_duplicates(int* nums, int arr_size)
{
if (arr_size <= 1) {
return arr_size;
}
int i = 0, j, count = 1;
while (i < arr_size) {
for (j = i + 1; j < arr_size && nums[i] == nums[j]; j++) {}
if (j < arr_size) {
nums[count++] = nums[j];
}
i = j;
}
return count;
}
int main(void)
{
int nums[] = {1,1,2,3,4,4,5,6,6,6};
int size = sizeof(nums)/sizeof(nums[0]);
printf("Original array:\n");
int i;
for (i = 0; i < size; i++) {
printf("%d ", nums[i]);
}
int count = remove_duplicates(nums, size);
printf("\nAfter removing duplicates from the above sorted array:\n");
for (i = 0; i < count; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
Пример вывода:
Исходный массив: 1 1 2 3 4 4 5 6 6 6 После удаления дубликатов из вышеупомянутого отсортированного массива: 1 2 3 4 5 6
Иллюстрированная презентация:
Блок - схема:
Решение
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программирование на C, чтобы сгенерировать все комбинации правильно сформированных скобок из n заданных пар скобок.
Далее: Напишите программу на C, чтобы удалить все экземпляры заданного значения в заданном массиве целых чисел и вернуть длину нового массива.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code