Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опять массивы, Перемещение элемента 
:(
    Опции темы
Wild
Дата 25.11.2004, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 20.10.2004

Репутация: нет
Всего: нет



Что нужно сделать с элементом, чтобы изменить его положение
в списке элементов?
Example: В задаче сказано преобразовать массив так, чтобы все элементы, равные 0, стояли после всех остальных.
PM MAIL   Вверх
dargaard
Дата 25.11.2004, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 450
Регистрация: 7.5.2004

Репутация: 4
Всего: 25



Переместить нужный елемент куда надо.
Из примера:
Код

#include <stdlib.h>

int m[]={0,0,1,2,3,7,0,5,1,2,0,3,4,7,11,180,0};
int main() {

   int i,k,sz;

   sz=sizeof(m)/4;

   for (i=0; i<sz; i++) {
       printf("%d ",m[i]);
   }
   printf("\n");

   
   

   k=0;
   for (i=0; i<sz; i++) {
       if (m[i]!=0) {
           //перемешяем элемент куда надо (в к-ый кладем i-тый)
           m[k]=m[i];
           k++;
       }
   }
   
   for (; k<sz; k++) {
       m[k]=0;
   }

   for (i=0; i<sz; i++) {
       printf("%d ",m[i]);
   }
   printf("\n");
}



Это сообщение отредактировал(а) dargaard - 26.11.2004, 10:56


--------------------
Ты должна сделать добро из зла 
потому что его больше не из чего
сделать. Р.П.Уоррен
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 27.11.2004, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Вот ещё, возможно поможет smile Для замены местами двух елементов.
Код

<template class Element>
//el: Массив
// first, second индексу елементов, которые надо поменять местами
void exchange(Element *el, int first, int second)
{
Element help=el[first];
el[first]=el[second];
el[second]=help;
}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
bel_nikita
Дата 27.11.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



sergej.z Может, вот, такое имел ввиду : smile
Код
template<class T> inline
void swap(T& Left, T& Right)
{
 T Temp  = Left;
 Left    = Right;
 Right   = Temp;
}

...
 int Array[100];
 Array[30] = 0xFFFFF;
 Array[10] = 0xAAAAA;
 printf("\nArray[30]= %08X",Array[30]);
 printf("\nArray[10]= %08X",Array[10]);
 swap(Array[30],Array[10]);
 printf("\nArray[30]= %08X",Array[30]);
 printf("\nArray[10]= %08X",Array[10]);
...



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 27.11.2004, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Да, конечно так элегантней smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
A...
Дата 28.11.2004, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 5.10.2004
Где: Ереван

Репутация: нет
Всего: 1



bel_nikita , а что зто означает ?

Код

 Array[30] = 0xFFFFF;
 Array[10] = 0xAAAAA;

--------------------
Особое спасибо Русскому языку за предоставленные буквы...
PM MAIL ICQ   Вверх
cardinal
Дата 28.11.2004, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(A @ 27.11.2004, 23:10)
bel_nikita , а что зто означает ?

Это присвоения значений элементам 11 и 31 (если исходить из того, что Array[0] это первый элемент)


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
bel_nikita
Дата 28.11.2004, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Дополню cardinal'а. 0xFFFFF и 0xAAAAA - это числа в Hex'ах smile

А вот, еще для пущей путаницы: smile
Код

int Array[100];
30[Array] = 0xFFFFF; //;)
10[Array] = 0xAAAAA; //;)
printf("\nArray[30]= %08X",Array[30]);
printf("\nArray[10]= %08X",Array[10]);



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.