Искам да сортирам един масив от 6 елемента по метода на "мехурчето", но като дам на Dev-а да изпълни програмата, той гърми смисъл показва се черния екран и дотам ? Казва, че програма спира да работи.
Ето ги и следния код:
#include <iostream.h>
#include <conio.h>
int main ()
{
int a[6]={44,55,12,42,94,18};
int i,n,swap,k;
for(i=0;i<n-1;i++)
for(k=0;k<n-1-i;k++)
if(a[k]>a[k+1])
{
swap=a[k];
a[k]=a[k+1];
a[k+1]=swap;
}
for(i=0;i<6;i++) cout<<a<<endl;
getch ();
return 0;
}
Може и аз да съм допуснал някъде грешна, но невярвам, а и dev-а не ми казва, че нямам грешка.
C++ Проблем при сортиране на масив
- preslavchooo
- Мнения: 18
- Регистриран на: 25 Май 2011, 16:19
- Местоположение: Varna
C++ Проблем при сортиране на масив
HTC 7 Trophy 7.8 & iPod 2g 4.2.1 greenpoison
Re: C++ Проблем при сортиране на масив

Използваш променлива, която не е инициализирана. Оттам проблем с паметта. Използваш n, а за него не е зададена стойност. Ако му присвоиш n = 6, ще тръгне.
Друг е въпросът, че стила е ужасен, не се спазват никакви стандарти. Аз бих я написал по този начин:
Код за потвърждение: Избери целия код
#include <iostream>
using namespace std;
int *A;
int main ()
{
unsigned N;
int crnt;
bool ok;
cin>>N;
A = (int *)malloc(sizeof(int)*N);
for(unsigned i = 0; i < N; i++) cin>>A[i];
do {
ok = false;
for(unsigned i = 0; i < N - 1; i++) {
if(A[i] > A[i+1]) {
int swap;
swap = A[i];
A[i] = A[i+1];
A[i+1] = swap;
ok = true;
}
}
}while(ok);
for(unsigned i = 0 ;i < N; i++) cout<<A[i]<<' ';
cout<<endl;
system("pause");
return 0;
}