Chciałem napisać prosty program,który posortuje mi liczby z tablicy od najmniejszej do
największej.
Czy taka metoda sortowania jest OK.
Wielkie dzięki za wszystkie uwagi.
Kod: Zaznacz cały
#include<iostream.h>
#pragma hdrstop
//---------------------------------------------------------------------------
void SzukajNajwiekszejLiczby();
void Sortuj();
int SortLicz = 0;
float NajwiekszLiczba = 0;
float Tab[10] = {0};//tablica float-ów
#pragma argsused
int main(int argc, char* argv[])
{
for(int DaneIn = 0;DaneIn<10;DaneIn++)//wprowadzanie danych do tablicy
{
cout<< "wprowadz (tylko) liczbe nr. "<< DaneIn+1<<"\n\n";
cin>>Tab[DaneIn];
}
SzukajNajwiekszejLiczby();//wywolanie funkcji do szukania najwiekszej liczby
for(int a1 = 0;a1<10;++a1)
{
Sortuj();//wywolanie funkcji sortowania 10 liczb z tablicy
}
system("pause");
return 0;
}
//---------------------------------------------------------------------------
void SzukajNajwiekszejLiczby()
{
if(Tab[SortLicz]< Tab[SortLicz+1])swap(Tab[SortLicz+1],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+2])swap(Tab[SortLicz+2],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+3])swap(Tab[SortLicz+3],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+4])swap(Tab[SortLicz+4],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+5])swap(Tab[SortLicz+5],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+6])swap(Tab[SortLicz+6],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+7])swap(Tab[SortLicz+7],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+8])swap(Tab[SortLicz+8],Tab[SortLicz]);
if(Tab[SortLicz]< Tab[SortLicz+9])swap(Tab[SortLicz+9],Tab[SortLicz]);
NajwiekszLiczba = Tab[0];//NajwiekszLiczba = nawieksza liczba
printf("\n");
printf("Dane po posortowaniu");
printf("\n");
}
//--------------------------------------------------------------------
void Sortuj(void)
{
if(Tab[SortLicz]> Tab[SortLicz+1])swap(Tab[SortLicz+1],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+2])swap(Tab[SortLicz+2],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+3])swap(Tab[SortLicz+3],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+4])swap(Tab[SortLicz+4],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+5])swap(Tab[SortLicz+5],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+6])swap(Tab[SortLicz+6],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+7])swap(Tab[SortLicz+7],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+8])swap(Tab[SortLicz+8],Tab[SortLicz]);
if(Tab[SortLicz]> Tab[SortLicz+9])swap(Tab[SortLicz+9],Tab[SortLicz]);
printf("\n");
printf("%f\n",Tab[0]);
Tab[0] = NajwiekszLiczba+1;//dodajemy 1 do najwiekszej liczby
}
Sortuje ,to może jest OK.