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

Нулевые элементы в начало - C++

Восстановить пароль Регистрация
 
Snoopy
1910 / 1067 / 90
Регистрация: 06.12.2008
Сообщений: 2,802
10.01.2011, 22:36     Нулевые элементы в начало #1
Задание, в одномерном массиве нулевые элементы перенести в начало!
Вот код, проблема в том что не учитывает элемент с нулевым индексом!
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
30
31
32
33
34
35
36
#include <iostream.h>
using namespace std;
int main()
{
    const int n=7;
    int i;
    int x[n]={8, 4, 0, 0, 3, 0, 1};
    /*cout << "n= ";
    cin >> n;
    for (i=0; i<n; i++)
        x[i]=rand()%5-2; 
    for (i=0; i<n; i++)
        {
              cout << "x[" << i << "]= ";
              cin >> x[i];
        }; */
    cout << "\n";
    for (i=0; i<n; i++)
        cout << x[i] << "  ";
    cout << "\n";
    int k=0, j=0;
    for (i=0; i<n; i++)
        if (x[i] == 0)
        {
              k++;
              int a=x[i];
              for (j=i; j>=k+1; j--)
                  x[j]=x[j-1];
              x[k]=a;
        };
    for (i=0; i<n; i++)
        cout << x[i] << "  ";
    cout << "\n";
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2011, 22:36     Нулевые элементы в начало
Посмотрите здесь:

одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++ C++
Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора C++
C++ Нулевые элементы
C++ Заменить первых 2 нулевые элементы заданного вектора соответственно на первых 2 не нулевые элементы этого вектора
Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы C++
C++ Позиционирование в потоке, переставить все нулевые элементы в начало файла
C++ Перенести в начало массива нулевые элементы
C++ Функция, перемещающая нулевые значения массива в начало

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
10.01.2011, 22:52     Нулевые элементы в начало #2
Цитата Сообщение от Snoopy Посмотреть сообщение
if (x[i] == 0)
{
k++;
int a=x[i];
for (j=i; j>=k+1; j--)
x[j]=x[j-1];
x[k]=a;
};
Попробуйте заменить
C++
1
2
3
4
5
6
7
8
if (x[i] == 0)
        {
              int a=x[i];
              for (j=i; j>=k+1; j--)
                  x[j]=x[j-1];
              x[k]=a;
              k++;
        };
Yandex
Объявления
10.01.2011, 22:52     Нулевые элементы в начало
Ответ Создать тему
Опции темы

Текущее время: 00:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru