[praca domowa] lekcja 21
Ostatnio zmodyfikowano 2012-02-12 23:06
Kelemes Temat założony przez niniejszego użytkownika |
[praca domowa] lekcja 21 » 2012-02-04 22:18:31 Czemu ten otóż programik wyrzuca mi błąd po wpisaniu liczb? Wiem, że trochę na łatwiznę zrobiony z myślą, że tylko 3 liczby nas interesują, ale wpierw chce poznać sposób. #include <iostream> #include <ctime> #include <cstdlib> using namespace std;
void wpisywanie( int liczby[], int ilosc ) { int a = 0; do { do { cin.clear(); cin.sync(); cin >> liczby[ a ]; cout << endl; } while( cin.fail() ); cout << liczby[ a ] << endl; a++; } while( a <= ilosc ); return; }
int main() { srand( time( 0 ) ); int liczby[ 2 ]; int probka; int licznik = 0; int porzadkowa; int licznik2 = 0; int los[ 1 ]; wpisywanie( liczby, 2 ); do { do { probka = rand() int porzadkowa = - 1; do { porzadkowa++; } while(( liczby[ porzadkowa ] != probka ) &&( porzadkowa < 2 ) ); } while( liczby[ porzadkowa ] != probka ); if( licznik2 = 0 ) { los[ 0 ] = probka; cout << "oto twoja liczba " << los[ 0 ] << endl; licznik2++; } if( probka != los[ 0 ] ) { los[ 1 ] = probka; licznik2++; cout << "oto druga liczba: " << los[ 1 ] << endl; } } while( licznik2 < 2 ); return 0; } |
|
szyx_yankez |
» 2012-02-05 11:02:04 int liczby[ 2 ];
Z myślą na 2 liczby:D po wpisaniu 3 liczb program się wywali bo wpisujesz do nieistniejących komórek tablicy. |
|
Kelemes Temat założony przez niniejszego użytkownika |
» 2012-02-05 11:08:23 wlasnie odkrylem ze tak powinno wygladac i juz mialem wklejac ;), ale blad wywala dalej #include <iostream> #include <ctime> #include <cstdlib> using namespace std;
void wpisywanie( int liczby[], int ilosc ) { int a = 0; do { do { cin.clear(); cin.sync(); cin >> liczby[ a ]; cout << endl; } while( cin.fail() ); cout << liczby[ a ] << endl; a++; } while( a < ilosc ); return; }
int main() { srand( time( 0 ) ); int liczby[ 3 ]; int probka; int licznik = 0; int porzadkowa; int licznik2 = 0; int los[ 2 ]; wpisywanie( liczby, 3 ); do { do { probka = rand(); int porzadkowa = - 1; do { porzadkowa++; } while(( liczby[ porzadkowa ] != probka ) &&( porzadkowa < 2 ) ); } while( liczby[ porzadkowa ] != probka ); if( licznik2 = 0 ) { los[ 0 ] = probka; cout << "oto twoja liczba " << los[ 0 ] << endl; licznik2++; } if( probka != los[ 0 ] ) { los[ 1 ] = probka; licznik2++; cout << "oto druga liczba: " << los[ 1 ] << endl; } } while( licznik2 < 2 ); return 0; } |
|
Kelemes Temat założony przez niniejszego użytkownika |
» 2012-02-12 23:06:26 Po paru dniach wróciłem do problemu, zaczynając od zera. Teraz wszystko buczy i huczy... a może jednak coś dopracować :)? #include <cstdlib> #include <iostream> #include <ctime> using namespace std;
void losowacz( int wyniki[] ) { int a; int wskaznik; int indeks = 0; wyniki[ indeks ] =( rand() % 10 + 1 ); indeks++; while( indeks < 3 ) { do { a =( rand() % 10 + 1 ); wskaznik = 0; for( int i = 0; i < indeks; i++ ) if( a == wyniki[ i ] ) wskaznik++; } while( wskaznik > 0 ); wyniki[ indeks ] = a; indeks++; } return; }
void sprawdzacz( int wyniki[], int koncowe[] ) { int a; bool slabo; int wskaznik; int indeks = 0; while( indeks < 2 ) { do { a =( rand() % 10 + 1 ); wskaznik = 0; slabo = true; for( int i = 0; i < 3; i++ ) if( a == wyniki[ i ] ) { slabo = false; if( indeks == 0 ) { koncowe[ 0 ] = a; indeks++; wskaznik++; } for( int i = 0; i < indeks; i++ ) if( a == koncowe[ i ] ) wskaznik++; } if( slabo == true ) wskaznik++; } while( wskaznik > 0 ); koncowe[ indeks ] = a; indeks++; } return; }
int main() { int wyniki[ 3 ]; int koncowe[ 2 ]; srand( time( NULL ) ); losowacz( wyniki ); for( int i = 0; i < 3; i++ ) cout << wyniki[ i ] << endl; sprawdzacz( wyniki, koncowe ); cout << endl; for( int i = 0; i < 2; i++ ) cout << koncowe[ i ] << endl; return 0; }
|
|
« 1 » |