Упорядочить массив удалив нули со сдвигом влево ненулевых элементов - 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; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с вводом/выводом (stdio.h).
- Создание массива типа int с размером 10 элементов и инициализация его значениями.
- Вычисление размера массива в байтах и определение указателей на первый и последний элементы массива.
- Перебор элементов массива с помощью цикла for с условием продолжения, пока указатель на элемент массива не станет равен указателю на последний элемент массива плюс размер массива.
- Внутри цикла проверяется, если значение текущего элемента массива равно нулю, то следующий ненулевой элемент сдвигается влево на одну позицию.
- После завершения первого цикла, второй цикл перебирает элементы массива, начиная с первого элемента и заканчивая последним, пропуская нулевые элементы.
- В каждой итерации второго цикла выводится значение текущего элемента массива через пробел.
- Возвращение значения 0 операционной системе, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д