Форум программистов, компьютерный форум CyberForum.ru

Переместить нулевые элементы в конец массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ число в степени http://www.cyberforum.ru/cpp-beginners/thread241075.html
Выведите число 2 в степени N. Нужно решить циклом for. Знаю, это лёгкая задача, но я совсем забыла цикл for.
C++ из заданного интервала натуральных чисел определить все простые числа из заданного интервала натуральных чисел определить все простые числа http://www.cyberforum.ru/cpp-beginners/thread241071.html
C++ Как правильно оформлять модули?
как правильно нужно оформлять модули? допустим самый простейший.сохранил как modul.h #include <iostream> extern void write(); void write() { cout<<"Hello world!"<<endl;
sort_array C++
Всем форумчанам доброго времени суток!!Есть такая задача:реализовать меню,дающее пользователю выбрать сортировку массива по желанию(выбор,вставка или обмен) и направление(возрастание или убывание).,т.е.в программе нужно отобразить все три сортировки.Как это лучше сделать,через оператор switch?Зараннее благодарен за помощь.
C++ Решить уравнение с точностю Е и указать необходимое число итераций http://www.cyberforum.ru/cpp-beginners/thread241007.html
Нужно решить уравнение с точностю Е и указать необходимое число итераций. Ниже все даные, што у меня есть. Язык С, не С++. Буду очень благодарен если поможете. немного ошибся в формулє, в знаменателе должно быть 10+(!)e^Xn
C++ Определить, является ли введенная с клавиатуры строка вещественным числом Написать программу, которая проверяет, является ли введенная с клавиатуры строка вещественным числом. Если является, то программа должна сообщить в какой форме записано данное число, в фиксированной или экспоненциальной. подробнее

Показать сообщение отдельно
Runa
131 / 83 / 3
Регистрация: 28.08.2009
Сообщений: 363
26.05.2011, 02:37     Переместить нулевые элементы в конец массива
вот мой вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
        int j = 0, p=size-1, l=size;
        srand(time(0));
        for(int i=0;i<size;i++) 
                {
                        mas[i] = rand()%5;//Заполняем случайными числами
                        printf("%d ",mas[i]);//Выводим массив
                } 
        int countNull = 0;
        for (int i=0; i<l; i++)
        {
            if (mas[i]==0)
            {
                for (int q = i; q < size - 1; q++) //просто сдвигаем весь массив
                    mas[q]=mas[q+1];   
                i--; // возвращаемся на одну позицию назад, на случай если два нуля подряд
                l--; // тогда и проверять
                countNull++; //считаем сколько было нулей, чтобы потом их дописать с конца
            }
        }
                 
                //пишем нули с конца массива столько раз, сколько было нулей
        for (int i=size - 1; i>0 && countNull > 0; i--, countNull --)  //i отвечает за перемещение по массиву, countNull за количество нулей
        {
                mas[i]=0;
        }
        printf("\n");
        for(int i=0;i<size;i++) 
                        printf("%d ",mas[i]);//Выводим массив на экран
        printf("\n");
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru