Удалить нечетные элементы из массива сдвигом влево - C (СИ)
Формулировка задачи:
Сформировать массив из 50 случайных чисел, попадающих в заданный промежуток А. . В. Напечатать сформирован массив. Затем удалить из него все нечетные элементы. Напечатать массив после сокращения. Подсказка: для извлечения сдвигать все последующие элементы массива влево.
Помогите исправить и дописать код
Заранее спасибо!
#include#include // Для використання "rand()" #include // для використання 'srand (time (0))' int main() { const int n = 50; int i; int a[n]; srand(time(0)); for(i = 0; i < n; i++) { a[i]=rand()%50; printf("%d\n", a[i]); if(a[i] % 2 != 0){ printf("%d << 1 == %d\n",a[i], a[i] << 1); } } return 0; }
Решение задачи: «Удалить нечетные элементы из массива сдвигом влево»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h> // Для використання "rand()"
#include <time.h> // для використання 'srand (time (0))'
int main()
{
const int n = 50;
int i;
int a[n];
srand(time(0));
for(i = 0; i < n; i++) {
a[i]=rand()%50;
printf("%d\n", a[i]);
}
printf("New\n");
for(i = 0; i < n; i++) {
if(a[i] % 2 != 0){
a[i]=a[i] << 1;
printf("%d\n", a[i]);
}
}
return 0;
}
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Включаются необходимые заголовочные файлы:
stdio.hиспользуется для работы с функциями ввода-вывода;stdlib.hиспользуется для работы со случайными числами;time.hиспользуется для получения текущего времени, которое используется как семя для генерации случайных чисел.
- Определяется константа n, которая задает размер массива.
- Задается начальное значение i перед циклом.
- Создается массив a с помощью оператора
int a[n];. - Запускается генератор случайных чисел с помощью функции
srand(time(0)). - Цикл заполняет массив a случайными нечетными числами с помощью цикла
forи функцииrand()%50. Каждое сгенерированное число выводится на экран с помощью функцииprintf(). - Выводится сообщение
Newс помощью функцииprintf(New\n);. - Цикл проходит по массиву a с помощью цикла
forи проверяет, является ли элемент массива нечетным с помощью оператора%. Если это так, то элемент сдвигается влево на 1 с помощью оператора<<и выводится на экран с помощью функцииprintf(). - Возвращается 0, чтобы указать, что программа успешно завершилась.