Probleme beim cout Befehl ?

nesma

Mitglied
Hallo,

zeigt Fehler beim Kompilieren das der Befehl cout nicht deklariert wurde, kann ich nicht nachvollziehen

Code:
// 2005--Aufgabe 1
// Quizspiel

#include <cstdlib>
#include <iostream>
class WWM
{
      public:
      WWM(int runden) { 
                       int max[1000];
                       erunden = runden;
                        if (runden > 1000)
                         {
                          runden = max[1000];
                         }  
                       };
                       
      int simulieren();
      int auswerten();
      int ausgabe();
      
      private:
      static int gewinnstufen[15];
      int stufen[15];
      int erunden;
      int gewinnsumme[];
}; 

int WWM::gewinnstufen[15] = {50,100,200,300,500,1000,2000,4000,8000,16000,32000,
                             64000,125000,500000,1000000};

int WWM::simulieren()
{       
// --------Zufallszahl Fragestufe--------
        int wof,gewinn;
        int stufe,e;
        srand( (unsigned)time(NULL));
        stufe = rand()%15+1;
// ---------Richtig oder Falsch oder beendet-------
        for (int i=0;i<stufe;i++)
        {
                         
            if (wof == stufe)
            {
               gewinn = gewinnstufen[i];
            }
            if (wof < stufe || wof > stufe)
            {
               return 0;
            }
             
        
        }
        cout << "Test";          // Fehler
        
}

int WWM::auswerten()
{}

int WWM::ausgabe()
{

}

using namespace std;

int main(int argc, char *argv[])
{

    WWM quiz(100);
    quiz.simulieren();
    system("PAUSE");
    return EXIT_SUCCESS;
}

Fehler: `cout' undeclared (first use this function)
 
Hihi, wenn der Code komplett so in einer Datei steht, ist es ein dummer kleiner Fehler, der jedem andauernd passiert:

Du hast zwar ein schnuckliges using namespace std, allerdings erst NACH der benötigten Stelle. Schieb das using namespace nach oben oder mach aus "cout" "std::cout".
 
Kann mir bitte jemand helfen blick nicht mehr durch ?!

Funktion des Programms soll,
Konstruktor wird int-Zahl für quizrunden übergeben->
Methode simulieren() soll Quizrunden simulieren,
Zufallszahlen einer der Fragestufen 1 bis 15 ermitteln->
Prüfen ob Frage richtig oder falsch->
Gewinne in Array speichern->

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

class WWM
{
      public:
      WWM(int runden) { 
                       int max[1000];
                       erunden = runden;
                        if (runden > 1000)
                         {
                          runden = max[1000];
                         }  
                       };
                       
      int simulieren();
      int auswerten();
      int ausgabe();
      
      private:
      static int gewinnstufen[15];
      int fragen[15];
      int durschnittgewinn[15];
      int erunden;

}; 

int WWM::gewinnstufen[15] = {50,100,200,300,500,1000,2000,4000,8000,16000,32000,
                             64000,125000,500000,1000000};

int WWM::simulieren()
{       

// --------Zufallszahl Fragestufe--------
        int stufe;
        int gewinn;
        srand( (unsigned)time(NULL));
        stufe = rand()%15+1;

// ---------Richtig oder Falsch oder beendet-------
        for (int i=0;i<erunden;i++)
        {
            cout << "Frage: " << stufe;
            ?                    
        }  
        
        
}

int WWM::auswerten()
{}

int WWM::ausgabe()
{
    
}

int main(int argc, char *argv[])
{

    WWM quiz(10);
    quiz.simulieren();
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
moin


Ich weiss nicht wo genau dein Problem ist, aber damit du 1 - 15 erhällst musst du die Zeile
Code:
stufe = rand()%15+1;
in
Code:
stufe = (rand()%15)+1;
ändern.

Edit:
Musst du glaub ich doch nciht, da Punkt vor Strich rechnung. Der übersicht wegen solltest du es aber trotzdem tun.


mfg
umbrasaxum
 
Wo ist denn jetzt dein Problem, verstehste deinen eigenen Code nicht oder wie ?

Überigens, das hier wird nicht funktionieren... mach mal das ? weg ;)

Code:
		for (int i=0;i<erunden;i++)
		{
			cout << "Frage: " << stufe;
			?					
		}

Stell ne konkrete Frage, und du bekommst ne Antwort...
 
Ich wollte das so machen, es gibt ingesamt 15 Fragen das Programm soll bei der nächsten Frage wieder eine andere Zahl ausgeben also nicht immer den selben wert von Rand ?
 
Was Tobis meint ist das hier :

Code:
// --------Zufallszahl Fragestufe--------
		int stufe;
		int gewinn;
		srand( (unsigned)time(NULL));

// ---------Richtig oder Falsch oder beendet-------
		for (int i=0;i<erunden;i++)
		{
			stufe = (rand()%15)+1;  //jetzt wird jedes mal beim durchlaufen der schleife ne neue zahl generiert...
			cout << "Frage: " << stufe;
		}


Hoffe das hilft dir, wenn nicht, einen Fehler direkt angeben....nicht die Leute hier raten lassen, dann vergeht denen nämlich schnell die Lust dir zu helfen ;)


Gruss

MFC OpenGL
 
Wenn du meinst, dass du verhindern willst, dass eine der 15 Fragen doppelt gestellt wird, dann musst du dir merken, welche du schon generiert hast (Ein zusätzliches Flag-Array zum Beispiel).

Beim Suchen der nächsten Frage prüfst du die Zufallszahl, ob die schon in deinem Array auftaucht. Wenn sie das tut, dann nochmal eine Zufallszahl holen.
 
Zurück