arrayvariablen Buchstaben übergeben... Ausgabefehler -.-
-
hiho
ich möchte mir nen Namensgenerator schreiben (so als kleine Übung, dürfte ja anfürsich nicht soooo schwer sein^^) und mein bisheriges Ergebnis sieht so aus:#include <iostream> #include <stdlib.h> #include <ctime> using namespace std; int main() { char vokale[5]; vokale[0] = 'a'; vokale[1] = 'e'; vokale[2] = 'i'; vokale[3] = 'o'; vokale[4] = 'u'; srand((unsigned)time(NULL)); int anzahl = 4; int vokale_n = rand() % anzahl; if(vokale_n == 0) { cout << vokale[0]; } else if (vokale_n == 1) { cout << vokale[1]; } else if (vokale_n == 2) { cout << vokale[2]; } else if (vokale_n == 3) { cout << vokale[3]; } else if (vokale_n == 4) { cout << vokale[4]; } cout << vokale_n; return 0; }bisher werden testweise nur zufällige Vokale ausgegeben (später gehe ich nach dem Schema "vokal+konsonant+vokal+konsonant+vokal+konsonant usw. usf." vor)
Wenn ich das Programm laufen lasse, dann werden auch zufällige Buchstaben ausgegeben... allerdings mit der dazugehörigen Zahl dahinter (also z.B. "a0" oder "u4") ich habe bisher noch keine Möglichkeit gefunden das zu beheben, deswegen frage ich jetzt hier in der Hoffnung Hilfe zu kriegen (SuFu hab ich noch nicht benutzt, da ich nicht wusste nach welchem Stichwort ich suchen muss)vielen Dank und mfg,
Randall FlaggEDIT: PS: An der if-abfrage liegts nicht, hatte das vorher mit switch-case versucht kam aber das gleiche bei raus

-
Statt:
if(vokale_n == 0) { cout << vokale[0]; } else if (vokale_n == 1) { cout << vokale[1]; } else if (vokale_n == 2) { cout << vokale[2]; } else if (vokale_n == 3) { cout << vokale[3]; } else if (vokale_n == 4) { cout << vokale[4]; } cout << vokale_n;einfach:
cout << vokale[ volake_n ];
-
jo das geht, vielen dank. Ich hatte vorher mal
cout << vokale[rand()];da stehen gehabt, was (natürlich) nicht ging, und da hab ich auch nichts anderes mehr versucht bzw. mir ist nichts anderes mehr eingefallen^^
-
#include <iostream> #include <cstdlib> #include <ctime> #include <algorithm> struct func_rand { func_rand() { std::srand(std::time(0)); } int operator() (int n) { return static_cast<int>(static_cast<double>(n) * std::rand() / (RAND_MAX + 1.0)); } }; int main() { char vowel[5] = {'a', 'e', 'i', 'o', 'u'}; std::random_shuffle(vowel, vowel + 4, func_rand); std::cout << vowel[0] << std::endl; }sollte auch gehen
