Náhodný výběr slov (Jazyk C)
Zdravím... začal jsem programovat v jazyku C a došel jsem do fáze, kdy nemůžu přijít na to, jak napsat program pro náhodný výběr například z 5 slov. Přemýšlel jsem , že bych ty slova uložil do stringu a z nich bych nějak 1 náhodně vybral. Mohl by mi prosím někdo poradit , jak na to? Děkuji moc.
Pro jednoduchost můžeš mít např. dvourozměrné pole, kde budeš mít řetězce a pak si nechat generovat náhodné čísla od 0 do 4 a použít to jako index pro přístup k jednotlivým řetězcům.
rand
Tak si ty slova ulož do pole stringů a jenom náhodně generuj index do tohoto pole...
Dobře, díky vám oběma vyzkouším to...
Narazil jsem na problém...
Když to takhle napíšu, tak se mi po stisku tlačítka zobrazí místo toho náhodného slova pouze: True.
Dej:
To mně nechce vzít string. Vyhodí to error: 'string' : undeclared identifier
Nemáš v projektu includovanou knihovnu string.h
// EDIT
Teda kecám. namísto string použij std::string
Pořád mi to nechce pobrat teď to hodilo error: string : is not a member of 'std' i ten error co před tím.
A tu knihovnu string.h includovanou mám...
// Edit
Vlastně dnes je to #include <string> nikoliv zastaralý #include <string.h>.
Pak použij
using std::string;
a nemusíš používat to std před stringem.
Tady je výpis chyb:
'string' : is not a member of 'std'
'string' : undeclared identifier
'missing ';' before identifier 'str'
'str' : undeclared identifier
syntax error : '{'
missing ';' before '{'
syntax error : missing ';' before '}'
'rand': identifier not found
'str' : undeclared identifier
Díky za trpělivost
No to nebude fungovat.
Protože vymezuješ uvnitř bloku nahodnaslova:
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
Dej uvedené usingy hned za include část.
Pořád to samý. Zkoušel jsem i ten string bez std a nic...Nejspíš to nechám být
Ještě doplním , že podle toho původního kódu, kterej jsem sem dával, tak pokud nechám zobrazovat jen ty náhodná čísla , tak se čísla zobrazujou.
Hezky, díky moc
teď už to vyhodilo jenom 1 error na řádku
'void System::Windows::Forms::Control::Text::set(System: :String ^)' : cannot convert parameter 1 from 'std::string' to 'System::String ^'
Fffff.
namísto:
this->label1->Text = str[nahodne];
umísti
using namespace System;
String^ str2 = gcnew String(str[nahodne].c_str());
this->label1->Text = str2;
PS: Osobně bych preferoval namísto managed C++ C#.
super, jseš profík! Díky moc za trpělivost, už to běží ani nevíš, jakou si mi udělal radost ...
dobře... díky, vyzkouším ;)