Witajcie, uczę się programowania z kursu: http://cpp0x.pl/kursy/Kurs-C++/1 i mam problem, ponieważ albo jestem ślepy (prawdopodobnie), albo w tym kursie nie napisano na jakiej zasadzie mam wykonać część zadania z tego kursu, którą jest wylosowanie liczb podanych przez użytkownika. Co mam zrobić?
Pobierasz liczby do tablicy a potem losujesz jej elementy.
Mógłbyś jakoś rozpisać? Bo jestem zaciemniony i nie do końca łapię.
- Pytasz ile liczb wprowadzić (n)
Zrobiłem coś, źle i nie wiem jak to naprawić:
#include iostream
#include cstdlib
#include ctime
using namespace std;
int tablica()
{
int n[3];
cout "Podaj trzy liczby do losowania:" endl;
cin n[0];
cout endl;
cin n[1];
cout endl;
cin n[2];
cout endl;
return n[3];
}
int main()
{
cout "Witaj w Maszynie losujacej v0.04!";
cout "Wylosowane liczby to:";
int a;
int b;
cout a = tablica[rand() % 3] ", ";
cout b = tablica[rand() % 3] endl;
return 0;
}
Błędy:
||In function ‘int main()’
U ciebie tablica jest funkcją, u mnie była tablicą, więc stosowanie nawiasów kwadratowych w twoim przypadku jest niezasadne. Przerób tablicę na tablicę. Zmienne wczytuj w mainie (daruj sobie na razie funkcje, bo widać, że ich nie rozumiesz).
Poza tym zwracasz tablicę intów, a funkcja jest typu int.
kostek miał raczej na myśli taką konstrukcję:
int main()
{
pytasz o ilosc liczb - n
int* tablica = new int[n];
uzytkownik uzupelnia tablice
losowaLiczba = tablica[rand()%n];
dalsza czesc programu
delete [] tablica;
return 0; }
Co do twojego kodu:
Poćwicz proste funkcje aby zrozumieć ich działanie. Musisz poza tym zapamiętać elementarną prawdę - w C++ tablice indeksujemy od 0 do N-1
int tab[3] tworzy tablicę trójelementową - czyli patrząc na powyższe masz - tab[0] tab[1] tab[2] - koniec. A co zwracasz jako wynik funkcji?
return tab[3] - w tym momencie zwróciłeś jakiś wycinek pamięci nie należący do twojego programu