[21] zadanie domowe
Ostatnio zmodyfikowano 2013-05-09 15:40
gladiatus Temat założony przez niniejszego użytkownika |
[21] zadanie domowe » 2013-05-08 21:11:23 Mam problem po wczytaniu trzeciej liczby program dalej nie reaguje o to kod: #include <iostream> #include <cstdlib> #include <ctime>
int losuj() { return( rand() % 1 ) + 0; }
int czylos( int ile, int los[], int liczba ) { if( ile <= 0 ); return false; int a = 0; do { if( los[ a ] == liczba ) return true; a++; } while( a < ile ); return false; } int main() { srand( time( 0 ) ); int podane[ 3 ]; int losowanie[ 1 ]; int wylosowanych = 0; int jest = losuj(); int a = 0; std::cout << "Podaj liczbe pierwsza" << std::endl; std::cin >> podane[ 0 ]; std::cout << "Podaj liczbe druga" << std::endl; std::cin >> podane[ 1 ]; std::cout << "Podaj liczbe trzecia" << std::endl; std::cin >> podane[ 2 ]; { if( czylos( wylosowanych, losowanie, jest ) == false ) { losowanie[ wylosowanych ] = jest; wylosowanych++; } } while( wylosowanych < 2 ); wylosowanych = 0; do { a = losowanie[ wylosowanych ]; std::cout << podane[ a ] << std::endl; wylosowanych++; a++; } while( wylosowanych < 2 ); return 0; }
|
|
jsc |
» 2013-05-08 21:47:58 Masz nie kompletną pętlę. |
|
gladiatus Temat założony przez niniejszego użytkownika |
» 2013-05-09 15:10:34 Poprawiłem kod ,ale dalej nie działa #include <iostream> #include <cstdlib> #include <ctime>
int losuj() { return( rand() % 1 ) + 0; }
int czylos( int ile, int los[], int liczba ) { if( ile <= 0 ) return false; int a = 0; do { if( los[ a ] == liczba ) return true; a++; } while( a < ile ); return false; } int main() { srand( time( 0 ) ); int podane[ 3 ]; int losowanie[ 3 ]; int wylosowanych = 0; int w = 0; std::cout << "Podaj liczbe pierwsza" << std::endl; std::cin >> podane[ 0 ]; std::cout << "Podaj liczbe druga" << std::endl; std::cin >> podane[ 1 ]; std::cout << "Podaj liczbe trzecia" << std::endl; std::cin >> podane[ 2 ]; do { int jest = losuj(); if( czylos( wylosowanych, losowanie, jest ) == false ) { losowanie[ wylosowanych ] = jest; wylosowanych++; } } while( wylosowanych < 2 ); wylosowanych = 0; do { w = losowanie[ wylosowanych ]; std::cout << podane[ losowanie[ wylosowanych ] ] << std::endl; wylosowanych++; } while( wylosowanych < 2 ); return 0; }
|
|
kubawal |
» 2013-05-09 15:12:30 Poprawiłem kod ,ale dalej nie działa |
Co konkretnie poprawiłeś? Co nie działa? Czy to błędy czasu wykonywania czy kompilacji? |
|
gladiatus Temat założony przez niniejszego użytkownika |
» 2013-05-09 15:15:31 Program po wczytaniu trzech liczb nic dalej nie robi stoi w miejscu. |
|
kubawal |
» 2013-05-09 15:17:41 Spróbuj za pomocą debuggera sprawdzić, w którym miejscu stanął, a jeśli nie to daj sobie w tych pętlacz takie debugowe couty ( cout << "Wykonuje petle 1"; itp.) |
|
gladiatus Temat założony przez niniejszego użytkownika |
» 2013-05-09 15:32:53 Zrobiłem tak jak mówiłeś z tym cout i w konsoli pisało na zmianę wykonuje pętle 1 i 2 bardzo szybko.
|
|
Monika90 |
» 2013-05-09 15:36:28 int losuj() { return( rand() % 1 ) + 0; }
ta funkcja zawsze zwraca zero. To chyba nie tak ma być? |
|
« 1 » 2 |