Найти ненулевые элементы исходного массива и записать их в новый массив - C (СИ)
Формулировка задачи:
Ввести с клавиатуры масcив A[n]. Найти ненулевые элементы массива и записать их в новый массив B[m]
Решение задачи: «Найти ненулевые элементы исходного массива и записать их в новый массив»
textual
Листинг программы
#include <stdio.h> #define MAX 10 int main ( void ) { unsigned short yourArray[MAX], zeroArray[MAX]; unsigned char firstCounter, secondCounter = 0, thirdCounter = 0; puts( "Enter values of your array" ); fflush( stdout ); for ( firstCounter = 0; firstCounter < ( MAX * 2 ); ++firstCounter ) { if ( firstCounter == MAX ) printf( "\n%s\n", "New array with only zero is: " ); if ( firstCounter < MAX ) { printf( "yourArray[%hhu] = ", firstCounter ); scanf( "%hu", &yourArray[firstCounter] ); } else { if ( yourArray[secondCounter] == 0 ) printf( "%-2hhu", zeroArray[thirdCounter++] = yourArray[secondCounter++] ); else ++secondCounter; } } puts( "" ); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две массивы: исходный массив
yourArray
и массив, содержащий только нулиzeroArray
. - В цикле
for
происходит заполнение исходного массиваyourArray
значениями, которые пользователь вводит с клавиатуры. - Если индекс
firstCounter
равенMAX
, то выводится сообщение о том, что массивzeroArray
будет содержать только нули. - В каждой итерации цикла проверяется, достигнут ли предел размера исходного массива. Если да, то увеличивается счетчик
secondCounter
и проверяется значение элементаyourArray[secondCounter]
. - Если значение равно нулю, то в массив
zeroArray
записывается соответствующее значение и увеличиваются счетчикиsecondCounter
иthirdCounter
. - Если значение не равно нулю, то только увеличивается счетчик
secondCounter
. - После окончания цикла выводится пустая строка.
- Возвращается ноль, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д