#include <stdio.h>
#include <locale.h>
#define BUFFER 1024
size_t remove_element(int* collection, size_t size, size_t index);
size_t remove_group(int* collection, size_t size, size_t start_index, size_t quantity);
size_t fill_array(int* collection, size_t size);
void print_array(int* collection, size_t size);
int main(void) {
int collection[1024];
size_t size;
size_t index;
size_t quantity;
setlocale(LC_CTYPE, "Russian_Russia.1251");
printf(" Введите размер массива: ");
scanf_s("%ull", &size);
size = fill_array(collection, size);
print_array(collection, size);
printf(" Введите индекс удаляемого элемента: ");
scanf_s("%ull", &index);
size = remove_element(collection, size, index);
print_array(collection, size);
printf(" Введите индекс первого удаляемого элемента: ");
scanf_s("%ull", &index);
printf(" Введите количество удаляемых элементов: ");
scanf_s("%ull", &quantity);
size = remove_group(collection, size, index, quantity);
print_array(collection, size);
fflush(stdin);
getchar();
return 0;
}
size_t remove_element(int* collection, size_t size, size_t index) {
size_t i;
if (index >= size) return size;
for (i = index + 1; i < size; ++i) collection[i - 1] = collection[i];
return --size;
}
size_t remove_group(int* collection, size_t size, size_t start_index, size_t quantity) {
size_t i;
if (start_index >= size) return;
for (i = 0; i < quantity; ++i) {
size = remove_element(collection, size, start_index);
}
return size;
}
size_t fill_array(int* collection, size_t size) {
size_t i;
if (size > BUFFER) size = BUFFER;
for (i = 0; i < size; ++i) collection[i] = i + 1;
return size;
}
void print_array(int* collection, size_t size) {
size_t i;
for (i = 0; i < size; ++i) printf(" %i ", collection[i]);
printf("\n");
}
Другие языки программирования и технологии
Как на языке программирования Си убрать конкретный напечатанный элемент массива или напечатать его в определенном месте?
Использовать функции управления курсором консоли из conio.h. Они различаются в зависимости от конкретной среды программрования.
Олег Манылов
А это тут причем? Я че то не понял)
Алгоритм:
1.Ввод номера элемента
2.Создаем новый динамический массив с длинною на 1 меньше чем изначальный
3.Добовляем туда все элементы кроме того который ввели
4.Печатаем этот элемент из старого массива
4.Удалить старый массив
1.Ввод номера элемента
2.Создаем новый динамический массив с длинною на 1 меньше чем изначальный
3.Добовляем туда все элементы кроме того который ввели
4.Печатаем этот элемент из старого массива
4.Удалить старый массив
Арстанбек Сагындыков
Не с++, просто с
Похожие вопросы
- Массивы данных на языке программирования СИ.
- Язык программирования Си
- Как на языке программирования си сделать, чтобы при вводе полного бреда программа не поломалась?
- Как в языке программирования СИ осуществлять вызов подпрограммы, которая находится в другом файле?
- Ребята, скажите где можно скачать язык программирования Си, без ++
- Помогите пожалуйста решить задачу по программированию (язык программирования СИ)
- Какой язык программирования быстрее всех обрабатывает строки и массивы?
- Помогите пожалуйста найти ошибку в задаче (Язык программирования Си)
- Кто знает язык программирования Си++? Можно ли вывести текст по другому?
- Оконное приложение на WinAPI, вопрос про параметры функции WndProc. Язык программирования Си.