Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.08.2013, 16:45

Wo ist der Fehler im code? (Anfaengercode) c++

Hi, die Funktion soll folgendes bewirken:

Es wird nach einer Zahl gefragt.

4 verschiedene Effekte koennen durch jegliche Eingabe entstehen:

-bei unter 100,
-bei 100,
-bei über 100,
-bei jeglicher anderer eingabe (buchstaben)

Alle bisherigen verbesserungsvorschlaege sind im code umgesetzt.

Momentanes Problem: bei else (buchstaben) zieht er nicht.

-------------------------------------------------------
#include <iostream>

using namespace std;

int main ()

{
const int tempolimit = 100;
int Geschwindigkeit;

cout << "Hier sind " << tempolimit << "km/h erlaubt\n";
cout << "Wie schnell sind Sie gefahren?\n";
cin >> Geschwindigkeit;

if (Geschwindigkeit == tempolimit)
{
cout << "Nochmal Glueck gehabt, Junge..";
}

else if (Geschwindigkeit <= tempolimit)
{
cout << "Du bist " << tempolimit - Geschwindigkeit<< " km/h unter dem Tempolimit gefahren. Beruhig dich Junge.." << endl;
}


else if (Geschwindigkeit >= tempolimit)
{
cout << "Du bist " << Geschwindigkeit - tempolimit<< " km/h zu schnell gefahren. Das gibt maechtig Probleme, Junge..";
}

else
{
cout << "Ja, du bist ein Idiot.";
}

return 0;

}

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »pmpedoutpolak« (26.08.2013, 18:17)


2

26.08.2013, 16:51

Ohne das ich mir jetzt alles durchgelesen habe aber in der Zeile



if (fGeschwindigkeit = tempolimit)


sollte doch der Operator ein == sein.
(Du willst ja vergleichen nehme ich an nicht zuweisen.)

3

26.08.2013, 17:04

Danke, habs korrigiert. Laeuft aber immernoch nicht. : (

Mein programm sagt mir, dass in zeile 22 ein > ( < vor else kommen muss. Das ist doch quatsch?

Fourb

Treue Seele

Beiträge: 122

Beruf: Schüler

  • Private Nachricht senden

4

26.08.2013, 17:04

Es heißt "else if". Wieder mal ein extrem gutes Beispiel für nichtlernen der Grundlagen.
42 / Pi = 13,37

Swoerm

Alter Hase

Beiträge: 451

Wohnort: 127.0.0.1

  • Private Nachricht senden

5

26.08.2013, 17:12

@Fourb
Er lernt ja noch die Grundlagen.

C-/C++-Quelltext

1
2
    /* Keep the compiler happy */
    return(0);

6

26.08.2013, 17:14

Die lerne ich doch grad : )

Danke habs korrigiert, aber das Prog muckt immernoch.

Fourb

Treue Seele

Beiträge: 122

Beruf: Schüler

  • Private Nachricht senden

7

26.08.2013, 17:15

Aber wenigstens die Keywords kann man lernen..

Du vergleichst int mit einem float. Das ist schon mal ein kleiner Fehler und du solltest jeder Variable die du definierst auch einen Wert zuweisen.
float v = 0 z.B.

Und die Vergleichsoperatoren umdrehen bitte.
42 / Pi = 13,37

8

26.08.2013, 17:30

Sehr geil! Das Programm laeuft nun zwar, aber er greift nicht bei "else".

Danke schonmal!

storage

Treue Seele

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

9

26.08.2013, 17:34

Ja kann es auch nicht, da du vorher prüfst ob es kleiner oder größer als 100 ist und einer dieser Fälle trifft immer zu, d.h. du kommst nie bis zum else zweig.

Fourb

Treue Seele

Beiträge: 122

Beruf: Schüler

  • Private Nachricht senden

10

26.08.2013, 17:35

Die else-Bedingung wird nicht erfüllt. ;D
Versuchs mal mit Buchstaben als Eingabe.
42 / Pi = 13,37

Werbeanzeige