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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2010, 14:50   #1
MaRKer.nsk
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 53
По умолчанию во время сортировки программа вылетает

Здравствуйте, написал программу которая создает массив и случайным образом заполняет его, и потом должна отсортировать, но почему то компилятор ошибок не обнаруживает, но во время сортировки программа вылетает((( и переводит в с++ в режим отладки
вот код
Код:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>


void bubble(int array[],int array_size)
{
	int  x, y, temp, i;

	x=0;
	y=0;

	for (x=0; x<array_size-1; x++)
		for (y=x+1; y<array_size; --y)
			if (array[x]>array[y])
			{
				temp=array[x];
				array[x]=array[y];
				array[y]=temp;
			}
			for (i=0; i<array_size; i++)
				cout<<array[i]<<" ";
}
/*void shell_sort(int array[], int N)
{
	int temp, Middle, i, Change;
	Middle=N/2;
	do
	{
		do
		{
			Change=0;
			for (i=0; i<N-Middle; i++)
				if (array[i]>array[i+Middle])
				{
					temp=array[i];
					array[i]=array[i+Middle];
					array[i+Middle]=temp;
					Change=1;
				}
		} while (Change);
	} while (Middle!=Middle/2);
}

void quisksort(long High, long Low)
{
	long i, j;
	int p, temp;

	i=Low;
	j=High;
	p=array[(Low+High)/2];

	do
	{
		while(array[i]<p) i++;
		while(array[j]>p) j++;
		if (i<=j)
		{
			temp=array[i];
			array[i]=array[j];
			array[j]=temp;

			i++;
			j--;
		}
	} while (i<=j);

	if (j>Low) quisksort(j, Low);

	if (High>i) quisksort(High, i);
}*/

int main(void)
{
	int size, i;
	int array[50];

	cout<<"array to size=";
	cin>>size;

	for (i=0; i<size; i++) {
		array[i]=rand()%100;
		printf("%d", array[i]);
		printf(" ");
	}

	//shell_sort(array, size);
	bubble(array, size);
	//quisksort(size-1, 0);

	for (i=0; i<size; i++)
		cout<<array[i]<<" ";

	getch();
	return 0;
}
использовал 3 способа сортировки: это быстрая, пузырьковая, и сортировка по алгоритму Шела
ЗЫ если вводить массив в ручную, то сортировки работают (Шела не испытывал но код взят из учебника), а когда автоматически не проходит почему понять не могу, вроде числа там вполне разумные. помогите
MaRKer.nsk вне форума Ответить с цитированием
Старый 10.04.2010, 15:23   #2
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Сортировка сделана неправильно

Вот правильный код сортировки

Код:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
template <typename T>
void bubbleSort(T a[], long size){
    long i, j;
	T x;
	for(i=0;i<size;i++){            // i - номер прохода
		for(j=size-1;j>i;j--){     // внутренний цикл прохода
			if(a[j-1]>a[j]){
				x=a[j-1];
				a[j-1]=a[j];
				a[j]=x;
			}
		}
	}
}

void main(){
	srand(time(NULL));
	const long SIZE=10;
	int ar[SIZE];
	
	// до сортировки
	for(int i=0;i<SIZE;i++){
		ar[i]=rand()%100;
		cout<<ar[i]<<"\t";
	}
	cout<<"\n\n";
	bubbleSort(ar,SIZE);

	// после сортировки
	for(int i=0;i<SIZE;i++){
		cout<<ar[i]<<"\t";
	}
	cout<<"\n\n";
}

Последний раз редактировалось Tirendus; 10.04.2010 в 15:33.
Tirendus вне форума Ответить с цитированием
Старый 10.04.2010, 15:39   #3
MaRKer.nsk
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 53
По умолчанию

нет всё равно коглда прога доходит до момента сортировки, выскакивает окно и ссылаеться на код в кампилятри на 16 строчку
Код:
if (array[x]>array[y])
вот скрин с ошибкой
MaRKer.nsk вне форума Ответить с цитированием
Старый 10.04.2010, 15:49   #4
MaRKer.nsk
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 53
По умолчанию

всё спасибо работает=)
MaRKer.nsk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа сортировки матрицы bles Паскаль, Turbo Pascal, PascalABC.NET 5 10.04.2010 16:20
Программа на C вылетает по непонятным причинам Lavisa Общие вопросы C/C++ 17 01.08.2009 18:45
программа сортировки Valex Фриланс 3 23.04.2009 22:23
Время сортировки в Delphi 7 Александр М Помощь студентам 3 19.11.2008 22:50
измерить время сортировки Cyberbest Помощь студентам 1 01.05.2008 19:30