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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2013, 17:17   #1
studentkotoriysmog
 
Регистрация: 10.11.2013
Сообщений: 4
По умолчанию Сортировка массива методом простого обмена

Привет,программисты!
Мне поставлена задача выполнить сортировку одномерного массива методом
простого обмена.
Массив я задаю с помощью датчика рандомных чисел.
Мой датчик:
Код:
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
int a[100];
int n;
cout<<"\nVvedite razmer massiva:";
cin>>n;
for(int I=0;I<n;I++)
{
a[I]=rand()%100-50;
cout<<a[I]<<" ";
}
getch();
}
Алгоритм сортировки:
Код:
for(int i=1;i<n;i++)
for(int j=n-1;j>=i;j--)
if(a[j]<a[j-1])
{int r=a[j];a[j]=a[j-1];a[j-1]=r;}
}
Помогите заставить работать алгоритм с моим массивом и вывести отсортированный массив на печать.Или хотя бы намекните что надо сделать.Все мои попытки отсортировать массив закончились на выводе массива с рандомными числами.
studentkotoriysmog вне форума Ответить с цитированием
Старый 10.11.2013, 18:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
for(int I=0;I<n;I++)
{
a[I]=rand()%100-50;
cout<<a[I]<<" ";
}
... Сюда код сортировки
for(int I=0;I<n;I++) cout<<a[I]<<" "; // Это вывод
... дальше твое окончание проги.
Ферштейн?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2013, 18:21   #3
studentkotoriysmog
 
Регистрация: 10.11.2013
Сообщений: 4
По умолчанию

Ваще изи,премного благодарен.

мб кому пригодиться:
Код:
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>

void main()
{
int a[100];
int n;
cout<<"\nVvedite razmer massiva:";
cin>>n;
for(int I=0;I<n;I++)
{
a[I]=rand()%100-50;
cout<<a[I]<<" ";
}
for(int i=1;i<n;i++)
for(int j=n-1;j>=i;j--)
if(a[j]<a[j-1])
{int r=a[j];a[j]=a[j-1];a[j-1]=r;}
for(int I=0;I<n;I++)
cout<<a[I]<<" ";
getch();
}
studentkotoriysmog вне форума Ответить с цитированием
Старый 10.11.2013, 18:23   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну и отлишнэнько )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2013, 18:52   #5
studentkotoriysmog
 
Регистрация: 10.11.2013
Сообщений: 4
По умолчанию

Stilet,помоги еще немного,пожалуйста.

Мой код:
Код:
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void main()
{
int a[100];
int n,k,kolvo,i;
cout<<"\nKoli4estvo elementov massiva:";
cin>>n;
for(int I=0;I<n;I++)
{
a[I]=rand()%100-50;
cout<<a[I]<<" ";
}
{cout<<"\nVedite K  ";cin>>k;
cout<<"\nVvedite koli4estvo  ";cin>>kolvo;
cout<<"\n\nUdaliaem "<<kolvo<<" elementov, nachinaya s  "<<k<<endl;

for(i=k; i<n-kolvo; i++)
    a[i]=a[i+kolvo];
n-=kolvo;

for(i=0; i<n; i++)
cout<<a[i]<<' ';
{for(i=0; i<n; i++);
cout<<a[i]<<' ';
for(i=0;i<n;i++)
{int tmp = a[i * 2];
a[i * 2] = a[i * 2 + 1];
a[i * 2 + 1] = tmp; }
//где-то тут
for(i=0;i<n;i++)
cout<<a[i]<<' ';
}

getch();
}
}
Результат выгляит так:
Код:
Koli4estvo elementov massiva:10
-4 -20 32 40 6 -33 45 -35 -2 -24
Vedite K  2

Vvedite koli4estvo  5


Udaliaem 5 elementov, nachinaya s  2
-4 -20 -35 -2 -24 -33 -20 -4 -2 -35 -33
Можешь помочь вывести результат перестановки чет. и нечет. элементов в одтельную строку,а не так как щас оно сразу же после удаления элементов выводит сразу и перестановку
studentkotoriysmog вне форума Ответить с цитированием
Старый 10.11.2013, 19:00   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for(i=0; i<n; i++);
Это что??? Зачем ; поставил? И зачем он вообще понадобился?
Код:
for(i=1;i<n;i+=2) cout<<a[i]<<' '; cout<<'\n'; // Это чет
for(i=0;i<n;i+=2) cout<<a[i]<<' '; cout<<'\n'; // Это нечест
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ сортировка методом простого обмена User_system Помощь студентам 0 30.03.2012 09:20
сортировка методом прямого обмена sestrenka141989 Паскаль, Turbo Pascal, PascalABC.NET 1 27.05.2010 09:22
Сортировка односвяного динамического списка методом обмена MyQwErTy Помощь студентам 11 13.05.2009 21:06