Berux Temat założony przez niniejszego użytkownika |
» 2012-07-28 22:38:54 O co chodzi? Zmieniłem swój kod,ale nic się nie zmienia,oprócz tego, że nic nie wypisuje.
I treść zadanie,podam też pierwszą,bo druga nawiązuje do pierwszej.
1. 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.
2. Zmodyfikuj program z pierwszego zadania tak, aby użytkownik musiał podać 10 liczb, a 8 z nich będzie losowanych bez powtórzeń. Sprawdź czy wyniki są poprawne.
|
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-07-30 12:24:10 Odświeżam... Już chyba rozumiem o co chodziło użytkownikowi mati1qazxsw2. Prawdopodobnie w main'ie (w pętli do ... while) jest coś nie tak. Problem tkwi w tym,że szukam tego błędu, ale nigdzie go nie zauważam. Proszę o pomoc. /edit: Już rozumiem. Cały program z zadania 1 i 2 był zły. Teraz napisałem coś takiego: #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
void wczytywanie( int wczyt[] ) { cout << "Podaj 3 liczby:" << endl; int i = 0; do { cin >> wczyt[ i ]; i++; } while( i < 3 ); }
bool sprawdzanie( int wczyt[], int wylos[], int ile, int iLiczba ) { int i = 0; if( ile <= 0 ) return false; do { if( wylos[ i ] == iLiczba ) return true; i++; } while( i < ile ); return false; }
int losowanie() { return( rand() % 3 ) + 0; }
int main() { int wczytane[ 3 ]; int wylosowane[ 2 ]; int ile; int i; wczytywanie( wczytane ); do { int liczba = losowanie(); if( sprawdzanie( wczytane, wylosowane, ile, liczba ) == false ) { cout << wczytane[ liczba ] << ", "; wylosowane[ i ] = liczba; ile++; i++; } } while( ile < 2 ); return 0; } To do zadania 1. Tylko, że nic mi nie chce wypisać. Proszę o pomoc (mam nadzieję, że już ostatni raz w tym poziomie). Z góry dziękuję. |
|
czosnek17 |
» 2012-07-31 16:04:55 |
|
sebastian56g |
» 2012-07-31 16:14:28 Nie wprowadzaj w błąd. Jak chce wczytać 3 liczby to musi mieć tablice 3 elementową czyli int tab[ 3 ] Wtedy indeksami tablicy jest: 0, 1 i 2 |
|
czosnek17 |
» 2012-07-31 16:23:28 Kurde, fail. Sory. |
|
sebastian56g |
» 2012-07-31 16:31:20 Co do błędu. Nie zdefiniowałeś zmiennej "i" i "ile". int i = 0; int ile = 0; Tak powinno być ok. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-07-31 17:20:28 Poprawiłem oraz dodałem w main'ie srand(time(0)); / srand(time(NULL));, i nic się nowego nie stało. Dalej te same wyniki |
|
sebastian56g |
» 2012-08-01 11:06:48 |
|
1 « 2 » 3 |