Упорядочить массив удалив нули со сдвигом влево ненулевых элементов - C (СИ)

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

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

Нужно написать программу при помощи простейших и не замысловатых операторов. Дан одномерный массив.Упорядочить массив удалив нули со сдвигом влево ненулевых элементов.

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

textual
Листинг программы
#include<stdio.h>
 
int main(){
    int mas[]={4,0,-5,0,6,7,0,0,-9,11}, size=sizeof(mas)/sizeof(*mas), *a=mas, *b=mas;
    for(; a!=mas+size; ++a){
        if(*b=*a)++b;
    }
    for(a=mas; a!=b; ++a){
        printf("%d ", *a);
    }
    return 0;
}

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

  1. Подключение стандартной библиотеки для работы с вводом/выводом (stdio.h).
  2. Создание массива типа int с размером 10 элементов и инициализация его значениями.
  3. Вычисление размера массива в байтах и определение указателей на первый и последний элементы массива.
  4. Перебор элементов массива с помощью цикла for с условием продолжения, пока указатель на элемент массива не станет равен указателю на последний элемент массива плюс размер массива.
  5. Внутри цикла проверяется, если значение текущего элемента массива равно нулю, то следующий ненулевой элемент сдвигается влево на одну позицию.
  6. После завершения первого цикла, второй цикл перебирает элементы массива, начиная с первого элемента и заканчивая последним, пропуская нулевые элементы.
  7. В каждой итерации второго цикла выводится значение текущего элемента массива через пробел.
  8. Возвращение значения 0 операционной системе, что означает успешный конец работы программы.

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы