UÂżytkownik
Chodzi, ale nie wiem czemu tylko dla tablicy <10 Jak ktoś znajdzie błąd niech się dzieli :]
#include <iostream>
using namespace std;
void sortowanie(int tab1[],int tab2[],int rozmiar)
{
for(int i=0;i<rozmiar;i++)
tab2[i]=-1;
int min;
bool bylo=false;
int max=tab1[0];
for(int i=0;i<rozmiar;i++)
if (tab1[i]>max) max=tab1[i];
for(int j=0;j<rozmiar;j++)
{
min=max;
for(int i=0;i<rozmiar;i++)
{
if (tab1[i]<=min)
{
bylo=false;
for(int k=0;k<j;k++)
if (i==tab2[k]) bylo=true;
if (!bylo)
{
tab2[j]=i;
min=tab1[i];
}
}
}
}
for(int i=0;i<rozmiar;i++)
tab2[i]=tab1[tab2[i]];
for(int i=0;i<rozmiar;i++)
cout<<tab2[i]<<endl;
}
int main()
{
int rozmiar, tablica1[rozmiar], tablica2[rozmiar];
cout<<"Podaj rozmiar tablicy: ";
cin>>rozmiar;
cout<<endl;
for(int i=0;i<rozmiar;i++)
{
cout<<"Podaj wartosc: ";
cin>>tablica1[i];
}
cout<<endl;
sortowanie(tablica1,tablica2,rozmiar);
system("pause");
}
Offline
Na moje (ale ja tam sie nie znam) musisz zadeklarować na sztywno rozmiar przy deklaracji(rozmiar musi być podobno z tego co kiedyś Tyszer mówił znany w chwili kompilacji) i wszystko powinno dobrze działać, albo co nie wiem jak wogóle zrobić zastosować "dynamiczną alokacje tablicy"
Ostatnio edytowany przez dziamek (2007-12-08 16:18:13)
Offline
UÂżytkownik
mi też sie tak wydaje i jeszcze taka mała uwaga techniczna
for(int i=0;i<rozmiar;i++) tab2[i]=-1; int min; bool bylo=false; int max=tab1[0];
lepiej jest zadeklarować zmienne poza pętlą bo dla każdego przejścia pętli w tym miejscu deklarujesz 3 zmnienne - czyli dla rozmiar=100 masz dodatkowo 300 operacji - mało opłacalne
Offline