#include <iostream>
#include <cstdlib>
void sprawdz_czy_rosnacy(int);
int generuj_ciag();
int sortuj_ciag();
int main(){
srand( time (NULL));
int wybor;
std::cout <<"Wybierz:\n 1. Podaj ciag.\n 2. Wygeneruj ciag i sprawdz.\n 3. Wygeneruj ciag rosnacy.\n Aby zakonczyc wcisnij z.\n";
std::cin >> wybor;
switch(wybor){
case 1:
int i, ilosc, ciag[ilosc];
std::cout<<"Podaj ilosc elementow ciagu.\n";
std::cin>> ilosc;
std::cout<<"Podaj liczby w celu sprawdzenia:\n";
for (i = 0; i < ilosc; i++){
std::cin>>ciag[i];
}
std::cout<<ciag[i]; //tutaj co bym nie drukowal, nie chce mi sie wydrukowac tablica z wpisywanymi liczbami
sprawdz_czy_rosnacy(ilosc);
break;
case 2:
generuj_ciag();
sprawdz_czy_rosnacy(ilosc);
break;
case 3:
generuj_ciag();
sortuj_ciag();
break;
case 'z':
break;
}
return(0);
}
int generuj_ciag(){ // tutaj okreslam dlugosc ciagu, potem gorna granica przedzialu i dolna losowania, ktore uzyte sa w funkcji random.
int i, ilosc, ciag[ilosc], dolna_granica, gorna_granica;
std::cout <<"Podaj dlugosc ciagu:";
std::cin>> ilosc;
std::cout <<"Podaj przedzial losowania od:\n";
std::cin>> dolna_granica;
std::cout<<"do:\n";
std::cin>> gorna_granica;
for( i = 0; i < ilosc; i++){ //losuje liczby z przedzialu i umieszcza je w tablicy
int temp, j;
j = (rand() % gorna_granica) + dolna_granica;
temp = ciag[i];
ciag[i] = ciag[j];
ciag[j] = temp;
}
return (ciag[ilosc]);
}
int sortuj_ciag(){ //sortowanie babelkowe)
int i, j, temp, rozmiar, ciag[rozmiar];
for (i = 0; i <= rozmiar; i++){
for(j = 0; j <= rozmiar; j++){
if(ciag[j]>ciag[j+1]){
temp = ciag[j];
ciag[j] = ciag[j+1];
ciag[j+1] = temp;
}
}
}
for(i = 0; i <= rozmiar; i++)
std::cout<<"ciag[i]";
return (0);
}
void sprawdz_czy_rosnacy(int ilosc){// tutaj sprawdza czy kazdy kolejny element jest wiekszy od poprzedniego.
int i, ciag[ilosc];
for(i = 0; i < ilosc; i++)
if(ciag[i]>ciag[i+1])
std::cout<<"Ciag jest rosnacy.";
else std::cout<<"Ciag nie jest rosnacy.";
}
Po wciśnięciu 2 i 3 się sypie. Segmentation failed. Ciężko mi ogarnąć gdzie.