Найти ненулевые элементы исходного массива и записать их в новый массив - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ввести с клавиатуры масcив A[n]. Найти ненулевые элементы массива и записать их в новый массив B[m]

Решение задачи: «Найти ненулевые элементы исходного массива и записать их в новый массив»

textual
Листинг программы
  1. #include <stdio.h>
  2. #define MAX 10
  3.  
  4. int main ( void )
  5. {
  6.     unsigned short yourArray[MAX], zeroArray[MAX];
  7.     unsigned char firstCounter, secondCounter = 0, thirdCounter = 0;
  8.  
  9.     puts( "Enter values of your array" );
  10.     fflush( stdout );
  11.  
  12.     for ( firstCounter = 0; firstCounter < ( MAX * 2 ); ++firstCounter ) {
  13.  
  14.         if ( firstCounter == MAX )
  15.             printf( "\n%s\n", "New array with only zero is: " );
  16.        
  17.         if ( firstCounter < MAX ) {
  18.         printf( "yourArray[%hhu] = ", firstCounter );
  19.         scanf( "%hu", &yourArray[firstCounter] );
  20.         }
  21.        
  22.         else {
  23.            
  24.             if ( yourArray[secondCounter] == 0 )
  25.                 printf( "%-2hhu", zeroArray[thirdCounter++] = yourArray[secondCounter++] );
  26.             else
  27.                 ++secondCounter;
  28.  
  29.         }
  30.     }
  31.  
  32.     puts( "" );
  33.     return 0;
  34. }

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две массивы: исходный массив yourArray и массив, содержащий только нули zeroArray.
  2. В цикле for происходит заполнение исходного массива yourArray значениями, которые пользователь вводит с клавиатуры.
  3. Если индекс firstCounter равен MAX, то выводится сообщение о том, что массив zeroArray будет содержать только нули.
  4. В каждой итерации цикла проверяется, достигнут ли предел размера исходного массива. Если да, то увеличивается счетчик secondCounter и проверяется значение элемента yourArray[secondCounter].
  5. Если значение равно нулю, то в массив zeroArray записывается соответствующее значение и увеличиваются счетчики secondCounter и thirdCounter.
  6. Если значение не равно нулю, то только увеличивается счетчик secondCounter.
  7. После окончания цикла выводится пустая строка.
  8. Возвращается ноль, что означает успешное завершение работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы