Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

zadanie z poradnika c++

Ostatnio zmodyfikowano 2013-06-24 22:55
Autor Wiadomość
obi2exe
Temat założony przez niniejszego użytkownika
zadanie z poradnika c++
» 2013-06-24 21:54:51
Witajcie! Mam do rozwiązania zadanie z poradnika. Może i proste, ale kurs jest powierzchowny i bardzo ogólny, więc ciężko cokolwiek z niego wyciągnąć pożytecznego. Zagadnienia w nim umieszczone to raczej ogólne wytyczne bez sensownie ukazanych przykładów. Tak czy inaczej chcę go ukończyć i zabrać się za jakąś dobrą książkę C++.
Mam do rozwiązania następujące zadanie:  Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy, a następnie wylosuje 2 z nich bez powtórzeń. Wynik wypisz na ekran. Postaraj się napisać ten program w oparciu o funkcje.  To mój kod, funkcję miałem ale zrezygnowałem z niej. Dlaczego to nie działa i jak to naprawić?

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    int a, b, c, losowanie1, losowanie2;
    cout << "Wybierz pierwsza liczbe:" << endl;
    cin >> a;
    cout << "Wybierz druga liczbe:" << endl;
    cin >> b;
    cout << "Wybierz trzecia liczbe:" << endl;
    cin >> c;
   
   
    int tablica[ 3 ];
    tablica[ 0 ] = a;
    tablica[ 1 ] = b;
    tablica[ 2 ] = c;
    srand( time( NULL ) );
   
    do
    {
        losowanie1 =( rand() % tablica[ 3 ] ) + tablica[ 0 ];
        losowanie2 =( rand() % tablica[ 3 ] ) + tablica[ 0 ];
       
    } while( losowanie1 == losowanie2 );
   
    cout << losowanie1 << losowanie2;
   
   
    return 0;
}
P-86105
Matix8741
» 2013-06-24 22:02:59
Po pierwsze radzę nadawać wartości tablicy od razu przy definicji:
int tablica[] = { a, b, c };
, według mnie ładniej i wygodniej, ale poza tym to przy losowaniu używasz czwartego elementu tablicy, którego nie ma
tablica[ 3 ]
P-86107
obi2exe
Temat założony przez niniejszego użytkownika
» 2013-06-24 22:06:52
Nie jest tak. Przecież tablica[3] to przedział losowania, a dopiero za + jest element od którego zaczynam czyli od tablica[3].
P-86108
Matix8741
» 2013-06-24 22:08:36
twoja tablica ma 3 elementy [0],[1] i [2], nie ma elementu [3]
P-86109
obi2exe
Temat założony przez niniejszego użytkownika
» 2013-06-24 22:10:55
Tak wiem ale natrafiłem na taki schemat: jakies_loswanie(rand()%przedział_losowania)+miejsce_losowania.
przedzial_losowania to cala tablica przeciez a nie jej 3 element, natomiast miejsce to poczatek tablicy czyli 0.
P-86110
pekfos
» 2013-06-24 22:11:03
Nie jest tak. Przecież tablica[3] to przedział losowania
Właśnie, że jest. Jak chcesz losować indeksy, to losuj indeksy, a nie wartości z tablicy. Poza tym, masz wylosować dwie liczby z tych wprowadzonych przez użytkownika, a nie z zakresu podanego przez użytkownika.
P-86111
obi2exe
Temat założony przez niniejszego użytkownika
» 2013-06-24 22:15:17
To w takim razie jak poprawnie wygląda konstrukcja takiego wyrażenia dla mojego programu? Jak zapisać ten przedział,
oraz początek i koniec losowania? Jak już wcześniej pisałem kurs C++ nie jest zupełny więc robię błędy często nie wynikające z mojego niedbalstwa.
P-86112
obi2exe
Temat założony przez niniejszego użytkownika
» 2013-06-24 22:17:02
Odnośnie tego co napisałeś... Jak losować indeksy? Nie jestem w stanie sam tego wykombinować.
P-86113
« 1 » 2
  Strona 1 z 2 Następna strona