Wpisanie wartości rand do zmiennej
Ostatnio zmodyfikowano 2015-12-01 06:37
yodaa Temat założony przez niniejszego użytkownika |
Wpisanie wartości rand do zmiennej » 2015-11-30 23:40:31 Hej, mam taki kod: int losowanie_b( int b ) { b =( rand() % 4 ) + 1; return b; }
Jak mogę wpisać wartość tego co wylosowałem do jakiejś zmiennej? Ten sposób nie działa |
|
carlosmay |
» 2015-12-01 00:14:32 Masz przypisane do 'b', a 'b' jest zwracane z funkcji, więc w czym problem. |
|
pekfos |
» 2015-12-01 00:14:58 int losowanie_b( int & b )
Pomijając, że niepoprawnie rozumujesz. |
|
yodaa Temat założony przez niniejszego użytkownika |
» 2015-12-01 00:22:51 To może wkleję cały kod, bo coś mi nie działa i nie wiem co. To ma być generator imion. Póki co zamysł jest taki, że rand ma generować losowy indeks tablicy w której znajdują się imiona. @pekfos o co konkretnie chodzi? #include <iostream> #include <string> #include <cstdlib> #include <ctime>
using namespace std; string names( string first_letter ); int losowanie_a( int & a ); int losowanie_b( int & b );
int main() { srand( time( NULL ) ); string a[ 4 ] = { "Adam", "Arkadiusz", "Amadeusz", "Adolf" }; string b[ 4 ] = { "Barbara", "Bogumil", "Benek", "Bozydar" }; string first_letter; cout << "Generator imion" << endl; cout << "Na jaka litere zaczyna sie wybrane imie?: " << endl; cin >> first_letter; names( first_letter ); system( "pause" ); }
string names( string first_letter ) { if( first_letter == "a" && "A" ) { cout << "Imie to:" << losowanie_a; } else if( first_letter == "b" && "B" ) { cout << "Imie to:" << losowanie_b; } return first_letter; }
int losowanie_a( int & a ) { a =( rand() % 4 ) + 1; return a; } int losowanie_b( int & b ) { b =( rand() % 4 ) + 1; return b; }
|
|
pekfos |
» 2015-12-01 00:26:30 if( first_letter == "a" && "A" )
|
To nie jest poprawny warunek. To znaczy jest, ale na pewno nie robi tego, czego oczekujesz. cout << "Imie to:" << losowanie_a;
|
A to nie jest poprawne wywołanie funkcji. Do tego, przy takim użyciu, funkcja powinna mieć postać int losowanie_a(), bez argumentów. |
|
yodaa Temat założony przez niniejszego użytkownika |
» 2015-12-01 00:34:51 Podejrzewam, że będę musiał zastosować strcmp czy coś podobnego. Do robienia jutro jak wstanę. |
|
carlosmay |
» 2015-12-01 06:37:59 Podejrzewam, że będę musiał zastosować strcmp czy coś podobnego |
Do porównania dwóch znaków nie trzeba używać funkcji strcmp. Porównaj pierwsza literę do małego 'a' and pierwszą literę do dużego 'A'. Jak już wspomniałeś o funkcjach to z <cctype> zastosuj std::tolower() lub std::toupper() i wtedy np. if( std::toupper( znak ) == 'A' )
|
|
« 1 » |