Zdravím, mám tuto strukturu programu, která by měla zůstat neměnná:
int* createArray(int length)
{
// TO-DO
return newArray;
}
void printArray(int* myArray, int length)
{
// TO-DO
}
void bubbleSort(int* myArray, int length)
{
// TO-DO
}
int main()
{
int length = 10;
// Vytvorenie nového poľa a naplnenie náhodnými hodnotami 1-100 pomocou metódy createArray
int* myArray = createArray(length);
// Výpis nezotriedeného poľa
printArray(myArray, length);
// Zotriedenie poľa
bubbleSort(myArray, length);
// Výpis zotriedeného poľa
printArray(myArray, length);
}
Do části " TO-DO" mám doplnitt lastní kód. Metoda createArray(int length) má vracet pointer (ukazatel) na pole, které obsahuje náhodně vygenerované hodnoty integer v rozsahu 1-100. Délku tohto pole určuje hodnota preměnné length. Dále mám implementovat metodu printArray(int* myArray, int length), její úlohou je vypsat na obrazovku všechny hodnoty pole myArray. Nakonec implementujte triedenie bubbleSort v metodě ze szejným názvem a znovu vypsat setřídění.
Bohužel se vypisují už v původním výpisu příliš vysoká čísla (až na několik prvních) a navíc se hodnoty ani nesetřídí správně, nebo se zobrazí 0. Pokud bych měl program vytvořit sám pomocí jednoduchých cyklů, nebyl by problém, ale tady si nevím vůbec rady :-(.
Můj kód:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int* createArray(int length)
{
int newArray[length];
int i;
for (i=0; i<=length; i++){
newArray[i] = 1+(rand()%100);
}
return newArray;
}
void printArray(int* myArray, int length)
{
int i;
for( i=0; i<length; i++){
cout << myArray[i] << endl;
}
}
void bubbleSort(int* myArray, int length)
{
int i,j;
for(i = 0; i < length-1; i++){
for(j = 0; j < length-i-1; j++){
if (myArray[j+1] < myArray[j]){
int cache = myArray[j+1];
myArray[j+1]=myArray[j];
myArray[j]=cache;
}
}
}
}
int main()
{
int length = 10;
srand(time(0));
// Vytvorenie nového poľa a naplnenie náhodnými hodnotami 1-100 pomocou metódy createArray
int* myArray = createArray(length);
// Výpis nezotriedeného poľa
printArray(myArray, length);
// Zotriedenie poľa
bubbleSort(myArray, length);
cout << "Serazena cisla: " << endl;
// Výpis zotriedeného poľa
printArray(myArray, length);
}