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

Небольшие вопросы - C++

Восстановить пароль Регистрация
 
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
26.10.2009, 22:07     Небольшие вопросы #1
Одномерный массив

1. Передвинуть элементы равные 0 в конец массива
2. Поменять местами массив, т.е. был 3 5 -9 0 1, стал 1 0 -9 5 3
3. Каждый второй элемент заменить на 0.

Язык программирования С
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
26.10.2009, 22:09     Небольшие вопросы #2
NastiKor, Это вопрос? Просьба? Инструкция к действию?
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
26.10.2009, 22:11     Небольшие вопросы #3
niXman,
NastiKor, Это вопрос? Просьба? Инструкция к действию?
Это приказ. Типа, работайте, негры :LOL:
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
26.10.2009, 22:12     Небольшие вопросы #4
C++
1
2
for(i=0;i<size;i++)
mass[i+1]=2;
ето на 3 вопрос.
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
26.10.2009, 22:13  [ТС]     Небольшие вопросы #5
Вопросы небольшие это...
mamedovvms
2915 / 836 / 93
Регистрация: 30.04.2009
Сообщений: 2,614
26.10.2009, 22:19     Небольшие вопросы #6
1)
C++
1
2
3
4
5
6
7
8
int k=0;
 for (int i=0; i<n-k;i++)
   if (a[i]=0) 
   {
      for (int j=i; j<n-1;j++)
         a[j]=a[j+1];
      k++;
   }
Добавлено через 3 минуты
Sekt,
Цитата Сообщение от Sekt Посмотреть сообщение
for(i=0;i<size;i++)
mass[i+1]=2;
может стоило сначало проверить такую конструкцию прежде чем писать, так как судя по ней ты заменишь на 2 все кроме первого, может проще сделать так
C++
1
2
for (int i=1;i<n;i+=2)
mass[i]=0;
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
26.10.2009, 22:20     Небольшие вопросы #7
Куда мой пост делся? Модеры поработали?
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
26.10.2009, 22:21     Небольшие вопросы #8
да у тебя правильнее
mamedovvms
2915 / 836 / 93
Регистрация: 30.04.2009
Сообщений: 2,614
26.10.2009, 22:23     Небольшие вопросы #9
C++
1
2
3
4
5
6
7
8
9
n-количество элементов
int k=n/2;
int temp;
for (int i=0;i<n;i++)
   {
      temp=a[i];
      a[i]=a[n-i];
      a[n-i]=a[i];
   }
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
26.10.2009, 22:24  [ТС]     Небольшие вопросы #10
mamedovvms, это 2-ое? Зачем вводить к?
mamedovvms
2915 / 836 / 93
Регистрация: 30.04.2009
Сообщений: 2,614
26.10.2009, 22:29     Небольшие вопросы #11
ну можно проще сделать
C++
1
n=n/2;
но я ввел новую переменную для наглядности

Добавлено через 1 минуту
можно было и так записать
C++
1
for (int i=0;i<n/2;i++)
выбирайте какой вариант вам по душе будет
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
26.10.2009, 22:45  [ТС]     Небольшие вопросы #12
Спасибо всем за помощь
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,147
Завершенные тесты: 1
26.10.2009, 22:47     Небольшие вопросы #13
Цитата Сообщение от niXman Посмотреть сообщение
NastiKor, Это вопрос? Просьба? Инструкция к действию?
ты уже сам на свой вопрос ответил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2009, 22:55     Небольшие вопросы
Еще ссылки по теме:

C++ 2 небольшие функции
C++ Сделать тесты небольшие
C++ Помогите написать две небольшие программы по блок схемам
C++ Разработка двоичного калькулятора (небольшие недочеты)
Нужны небольшие пояснения по маленькому фрагменту кода, реализующего рекурсивный поиск в глубину по графу C++

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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.10.2009, 22:55     Небольшие вопросы #14
Цитата Сообщение от mamedovvms Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int k=0;
 for (int i=0; i<n-k;i++)
   if (a[i]=0) 
   {
      for (int j=i; j<n-1;j++)
         a[j]=a[j+1];
      k++;
   }
Можно за один проход.
C++
1
2
3
4
5
6
7
8
9
int border = 0;
 
for(int i = 0; i < size; ++i)  // size - размер массива
  if(arr[i]){ // Если не ноль - меняем i-ый и border-ый элементы местами
    int tmp = arr[i];
    arr[i] = arr[border];
    arr[border] = tmp;
    ++border;
}
Yandex
Объявления
26.10.2009, 22:55     Небольшие вопросы
Ответ Создать тему
Опции темы

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