Sortowanie i wczytanie danych do tablicy

0

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>

0

Nie przyglądałem się zbytnio ale czy nie powinno być w tym miejscu lenght?

void printElements(int *array,int length) //funkcja wyswietlania liczb
{
        int i=0;
        for(i=0;i<10;i++)
    cout<<array[i]<<endl;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1