Четные элементы массива напечатать в одну строку, а индексы массива, где находятся четные элементы - в другую - C (СИ)
Формулировка задачи:
Решил задачу, не могу распечатать, нужно четные элементы массива напечатать в одну строку, а индексы массива, где находятся четные элементы, в другую строку. Пихаю, пихаю '\n', в разные стороны, не выходит, получается коряво в столбик, либо в одну строку. Что-то мысли закончились.
#include <stdio.h> #include <stdlib.h> #include <time.h> /* *Программа должна получить от пользователя размер массива, заполнить его случайными значениями, после чего: а) вывести все элементы массива с четными номерами, т.е. a[0]. a[2], a[4] и т.д. б) вывести все элементы массива, в которых содержатся четные числа, например, генератор случайных чисел заполнил массив числами: 2, 7, 1, 4, 9, 8, 5 генератор задает числа от 1 до 10 */ int main () { int size = 0; // размер массива int i; // счетчик циклов // новая точка отсчета случайного числа srand(time(NULL)); /* Просим пользователя указать размер массива */ printf("Укажите размер массива, не более 10 элементов:\n"); while(size < 1 || size > 10) { scanf("%i", &size); } /* Задаем массив нужного размера */ int a[size]; /* Заполняем массив случайными числами от 1 до 10 */ for(i = 0; i < size ; i++) { a[i] = 1 + rand() %10; } /* Выводим на печать только четные числа из массива */ for(i = 0; i < size ; i++) { if((a[i]%2) == 0 ) { printf("%i ", a[i]); printf("a[%i] ", i); } } printf("\n"); return 0; }
Решение задачи: «Четные элементы массива напечатать в одну строку, а индексы массива, где находятся четные элементы - в другую»
textual
Листинг программы
for( i = 0; i < size ; i++ ) if( ( a[ i ] % 2 ) == 0 ) printf( "%i%s", a[ i ], i != size - 1 ? "\t" : "\n" ); for( i = 0; i < size ; i++ ) if( ( a[ i ] % 2 ) == 0 ) printf( "a[%i]%s", i, i != size - 1 ? "\t" : "\n" );
Объяснение кода листинга программы
В данном коде реализован алгоритм, который выполняет следующие действия:
- Создается цикл for, который перебирает все элементы массива a от индекса 0 до размера массива (size).
- Внутри цикла проверяется, является ли текущий элемент массива четным числом (остаток от деления на 2 равен 0).
- Если элемент четный, то в консоль выводится значение этого элемента (a[i]), а также его индекс (i).
- После вывода значения элемента и его индекса, в консоль выводится символ табуляции (\t), если текущий элемент не является последним в массиве, и символ новой строки (\n), если это последний элемент.
- После завершения первого цикла, выполняется второй цикл for, который также перебирает все элементы массива a.
- Внутри второго цикла проверяется, является ли текущий элемент массива четным числом.
- Если элемент четный, то в консоль выводится надпись
a[i]
, а также его индекс (i). - После вывода надписи и индекса, в консоль выводится символ табуляции, если текущий элемент не является последним в массиве, и символ новой строки, если это последний элемент.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д