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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Garret192
 Аватар для Garret192
1 / 1 / 0
Регистрация: 21.10.2009
Сообщений: 84
#1

Массив - C++

20.01.2010, 20:25. Просмотров 293. Ответов 2
Метки нет (Все метки)

Привет всем.Помогите пожалуйста дорешать задачу.
“Сжать” массив, переместив все его нулевые элементы в конец массива.
Вот мой код
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
#include<iostream.h>
#include<stdlib.h>
const int n=100;
int main()
{
 int a[n],n,i,temp;
 cout<<"Vvedi n ";
 cin>>n;
 cout<<"Vvedi elements of massive ";
 for(i=0;i<n;i++)
 cin>>a[i];
 for(i=0;i<n;i++)
  for(i=0;i<n;i++)
   {
    if(a[i]==0)
     for(i;i<n-1;i++)
      {
       temp=a[i];
       a[i]=a[i+1];
       a[i+1]=temp;
      }
 
   }
 for(i=0;i<n;i++)
  cout<<a[i]<<" ";
 system ("pause");
 return 0;
}
При одном нуле он работает,а при двух нет, переставляя один,а другой оставляет на месте.
Помогите...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2010, 20:25     Массив
Посмотрите здесь:

C++ Как массив разнозначных чисел превратить в массив цифр? (С++)
Как разбить массив по 3 елемента и засунуть в другой массив C++
C++ Необходимо вывести на экран первоначальный массив и полученый массив
C++ Массив: Получить новый массив В по следующему правилу: В1=А1+А10
Массив: Упорядочить массив по возрастанию меньших элементов C++
Дан вещественный массив А[N]. Сформировать массив В[3] следующим образом: C++
C++ Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой
Дан массив A(N). Сформулировать массив B(M), элементами которого являются большие из двух рядом стоящих в массиве A чисел C++
Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию C++
Задан массив и матрица, получить другой массив по правилу C++
Первую половину массива P переписать в массив R, а вторую в массив Q C++
Записать в массив B длины всех серий исходного массива, а в массив C - значения элементов, образующих серии C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8277 / 3496 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
21.01.2010, 01:20     Массив #2
C++
1
2
3
4
5
for(i=0;i<n;i++)
  for(i=0;i<n;i++)
   {
    if(a[i]==0)
     for(i;i<n-1;i++)
Даже если это был бы ассемблер, то все равно не хватало бы строчек со смыслом
Assembler
1
2
push i
pop i
Как ты умудряешься в трех(!!!) вложенных циклах использовать только один индекс? Исправь и сделай 3 индекса
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
21.01.2010, 01:58     Массив #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <functional>
#include <algorithm>
 
int main()
{
    int arr[] = {1,2,3,0,5,0,6,-5,-7};
 
    const size_t N = sizeof(arr) / sizeof(*arr);
    const int elem = 0;
 
    int *ptr = std::partition(arr, arr+N, std::bind2nd(std::not_equal_to <int> (), elem));
 
    std::copy(arr, ptr, std::ostream_iterator <int> (std::cout," "));
    std::copy(ptr, arr+N, std::ostream_iterator <int> (std::cout," "));
 
    return 0;
}
Yandex
Объявления
21.01.2010, 01:58     Массив
Ответ Создать тему
Опции темы

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