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

Wpisanie wartości rand do zmiennej

Ostatnio zmodyfikowano 2015-12-01 06:37
Autor Wiadomość
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:

C/C++
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
P-141207
carlosmay
» 2015-12-01 00:14:32
Masz przypisane do 'b', a 'b' jest zwracane z funkcji, więc w czym problem.
P-141212
pekfos
» 2015-12-01 00:14:58
C/C++
int losowanie_b( int & b )
Pomijając, że niepoprawnie rozumujesz.
P-141213
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?
C/C++
#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;
}
P-141214
pekfos
» 2015-12-01 00:26:30
C/C++
if( first_letter == "a" && "A" )
To nie jest poprawny warunek. To znaczy jest, ale na pewno nie robi tego, czego oczekujesz.

C/C++
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.
P-141215
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ę.
P-141217
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.
C/C++
if( std::toupper( znak ) == 'A' ) // sprawdzany znak jest zawsze wielka litera
P-141218
« 1 »
  Strona 1 z 1