Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2009, 18:18   #1
Cdevelop
Пользователь
 
Регистрация: 14.03.2009
Сообщений: 43
По умолчанию Отсортировать отрицательные элементы

Отсортировать отрицательные элементы массива с помощью простого выбора.Где ошыбка?!
Код:
#include <iostream>
using namespace std;
int main()
{
const int n=5;
int a[n];
int b[n];
int l=0;
int y=0;
for(int i=0; i<n; i++)
{
cin>>a[i];
if(a[i]<0)
{
b[y]=a[i];
y++;
}
}
int maxk=a[0];
int k;
int s;
for(int i=y-1; i>=1; i--)
{
	maxk=a[0];
	for(int j=0; j<=i; j++)
		if(b[j]>maxk)
		{
			maxk=b[j];
			k=j;
		}
		s=b[i];
		b[i]=b[k];
	    b[k]=s;
}
for(int i=0; i<n; i++)
cout<<b[i]<<" ";
system("pause");
}
Cdevelop вне форума Ответить с цитированием
Старый 18.03.2009, 20:55   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Твой код сортирует весь массив а не только отрицательные элементы.
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 18.03.2009, 21:36   #3
Cdevelop
Пользователь
 
Регистрация: 14.03.2009
Сообщений: 43
По умолчанию

А где ошыбки!?
Cdevelop вне форума Ответить с цитированием
Старый 18.03.2009, 22:18   #4
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

я бы делал так

Код:
for (i=0; i<n; i++)
 for (j=i; j<n; j++)
  if (mas[i]<mas[j])
{
temp=mas[i];
mas[i]=mas[j];
mas[j]=temp;
}

Последний раз редактировалось MaTBeu; 18.03.2009 в 23:13.
-zeus- вне форума Ответить с цитированием
Старый 18.03.2009, 22:19   #5
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

ну стесно что мас это уже массив с отрицательными элементами
-zeus- вне форума Ответить с цитированием
Старый 18.03.2009, 22:31   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так понял:
Если исходный массив:
Код:
1 2 -5 -2 -8 4 5 -2 -4 2
то должно получиться
Код:
 1   2  -8  -5  -4   4   5  -2  -2   2
То есть неотрицательные элементы оставляем на своих местах.

Код:
#include <iostream>
using namespace std;

int main()
{
const int n=5;
int i,j,k,tmp;
int mas[n];
cout<<"Massiv: "<<endl;
for(i=0;i<n;i++)
 cin>>mas[i];
cout<<endl;

for(i=0;i<n-1;i++)
 if(mas[i]<0)
  {
   for(k=i, j=i+1;j<n;j++)
    if(mas[j]<mas[k]) k=j;
   tmp = mas[k];
   mas[k] = mas[i];
   mas[i] = tmp;
  }

for(i=0;i<n;i++)
 {
  cout.width(4);
  cout<<mas[i];
 }
 cout<<endl;

system("pause");
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите отсортировать! freedos Microsoft Office Excel 3 20.11.2008 04:18
Отсортировать по алфавиту Rio309 Помощь студентам 2 09.03.2008 22:52
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 19:16
Отсортировать по алфавиту asale Microsoft Office Excel 5 19.11.2007 22:01
Как отсортировать Uhryap Microsoft Office Word 2 24.02.2007 16:58