Cześc
Mam taki problem, chciałem napisać program do sortowania liczb wraz z pobieraniem danych do tablicy z klawiatury. Po posortowaniu wyświetla tylko pierwsze 4 lub 5 liczb a reszta jest z kosmosu. Jak możecie to poprawcie mnie co robię źle.
kod programu :
#include <cstdlib>
#include <iostream>
using namespace std;
void selectionSort(int *array,int length)// funkcja sortowania
{
int i,j,min,minat;
for(i=0;i<(length-1);i++)
{
minat=i;
min=array[i];
for(j=i+1;j<(length);j++) // znakezienie najmniejszego klucza
{
//if(min<array[j])
if(min>array[j]) //wybor czy od najmniejszego czy od największego
{
minat=j; //pozycja minimalnej liczby
min=array[j];
}
}
int temp=array[i] ;
array[i]=array[minat]; //zamiana
array[minat]=temp;
}
}
void printElements(int *array,int length) //funkcja wyswietlania liczb
{
int i=0;
for(i=0;i<10;i++)
cout<<array[i]<<endl;
}
int main(int argc, char *argv[])
{
int i; // zmienna do petli
int wt=0; // zmienna określająca wielkość tablicy;
printf("Podaj wielkość tablicy (wieksza od 0 (zera): ");
scanf("%d", &wt); // pobranie zmiennej ktora okresli wielkosc tablicy
int a[wt]; // utworzenie tablicy o podanej wielkości
// ktora zostala pobrana od uzytkownika
for
(i=0 ; i<wt ; i++)
{
printf("Podaj %2d element tanlicy: ", i+1);
scanf ("%d", &a[i]);
}
printf("\n"); // przeskoczenie do nastepnej linii
printf("Tablica zostala wypelniona, teraz nastapi jej wyswietlenie\n\n");
for(i=0 ; i<wt ; i++) // petla pokazuje ktory element
// tablicy jest wyswietlany
{
printf("%3d ", i);
}
printf("\n"); // przeskoczenie do nastepnej linii
for(i=0 ; i<wt ; i++) // petla ktora wyswietla kolejne elementy tablicy
{
printf("%3d ", a[i]);
}
//int a[]={9,6,5,23,2,6,2,7,1,8}; //tablica do sortowania
selectionSort(a,10); //call to selection sort
printElements(a,10); // wyświetlanie elementów
system("PAUSE");
return EXIT_SUCCESS;
}
Pozdrawiam</cpp>