Четные элементы массива напечатать в одну строку, а индексы массива, где находятся четные элементы - в другую - 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). - После вывода надписи и индекса, в консоль выводится символ табуляции, если текущий элемент не является последним в массиве, и символ новой строки, если это последний элемент.