Найти ненулевые элементы исходного массива и записать их в новый массив - 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
. - После окончания цикла выводится пустая строка.
- Возвращается ноль, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д