[ erweiterte Suche ]

»Kopfrechen-Trainer

Eingabe von Dezimalzahlen verhindernNeues Thema eröffnenNeue Antwort erstellenDas Thema einem Freund empfehlenDas Thema druckenTon in Programm einbinden
Seite 1 von 1 [3 Beiträge]
AutorNachricht
Beobachter 

Anmeldedatum: 19.11.2011
Beiträge: 1
Chats: 0
19.11.2011, 21:48


Also bei folgendem Programm habe ich das problem, dass er mir beim Compilieren, die fehlermeldung gibt, dass operand1 und operand2 undeclared sind. Warum ist das so?? Danke

#include <stdio.h>
#include <stdlib.h>

/*Zwei Operanden und die Operatoren +-/*% sollen willkürlich
gewählt werden*/

int main() {

int i;

srand(time(NULL));

// erzeugen der operanden

for(i = 0; i < 2; i++){

if(i == 0){
int operand1 = rand()%10+1; // im bereich von 1-10
printf("%d", operand1);
}

if(i == 1){
int operand2 = rand()%10+1;
printf("\t%d\n\n\n", operand2);
}
} //erzeugen der operatoren
int ersatz = rand()%5+1;

if(ersatz == 1)
int ergebnis = operand1 + operand2;//PROBLEMZEILE

/*else if(ersatz == 2)
int ergebnis = operand1 - operand2;

else if(ersatz == 3)
int ergebnis = operand1 * operand2;

else if(ersatz == 4)
int ergebnis = operand1 / operand2;

else if(ersatz == 5)
int ergebnis = operand1 % operand2;*/


printf("Das Ergebnis ist: %d\n", ergebnis);


system("PAUSE");
return 0;
}


Thx
take care
Nach obenprofil pn
Junior 

Anmeldedatum: 03.05.2011
Beiträge: 76
Chats: 38
19.11.2011, 23:58


Das Problem bei deinem Programm ist, dass du immer wieder Variablen mit gleichem Namen neu deklarierst.
Wenn du in einer if-Anweisung dann die Operanden deklarierst, sind sie auch nur für die if-Anweisung gültig und danach nicht mehr.
Also werden sie nachher als undeklariert bezeichnet wenn du sie nach der if-Anweisung wieder benutzen willst.
Du musst dein Programm sauber aufbauen und die Variablen am besten auch nur einmal im Programmkopf erzeugen. Ausserdem sollte man die Klammern immer richtig einrücken, sonst verliert man leicht den Überblick über die Verschachtelung.

Also besser so:

   Code:
int main() {

int i;
int operand1=0,operand2=0;
int ergebnis=0;
int ersatz=0;

srand(time(NULL));

// erzeugen der operanden

for(i = 0; i < 2; i++){

if(i == 0){
operand1 = rand()%10+1; // im bereich von 1-10
printf("%d", operand1);
}

if(i == 1){
operand2 = rand()%10+1;
printf("\t%d\n\n\n", operand2);
}
} //erzeugen der operatoren

ersatz = rand()%5+1;

if(ersatz == 1)
ergebnis = operand1 + operand2;//PROBLEMZEILE

else if(ersatz == 2)
ergebnis = operand1 - operand2;

else if(ersatz == 3)
ergebnis = operand1 * operand2;

else if(ersatz == 4)
ergebnis = operand1 / operand2;

else if(ersatz == 5)
ergebnis = operand1 % operand2;


printf("Das Ergebnis ist: %d\n", ergebnis);


system("PAUSE");
return 0;
}
Nach obenprofil pn
Gast 

20.11.2011, 11:45


jou danke ja das liegt wohl daran
Nach oben
Gast 

20.11.2011, 11:45


Mach mit!

Wenn Dir die Beiträge gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:

    » Anmelden

Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...
Nach oben
Seite 1 von 1 [3 Beiträge]
Neues Thema eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:HitsLetzter Beitrag
Eco-Trainer
Eco-Trainer Honda stellt das weltweit erste System vor, das drei verschiedene Funktionen zur Kraftstoffersparnis vereint. Dieser Eco-Trainer hilft unter realen und individuell ganz unterschiedlichen Fahrbedingungen den Verbrauch wesentlich zu...
von RH.onda
071317.01.2009, 14:37
RH.onda
Company of Heroes Opposing Fronts Trainer
Moin, ich bräuchte mal für weitere Experimente den Trainer für CoH, allerdings für 2.300! Bei Cheathappens.com will der glatt 15 euro im Monat für ne Vollregestrierung damit ich den Trainer loaden kann, und das geb ich beim besten Willen nicht dafür aus....
von Turrican
2395331.03.2008, 17:39
Turrican
PS3 FIFA 11 Online Liga sucht Trainer!!
Hallo, wir suchen noch zuverlässige Mitspieler für unsere Online Liga (PS3)!! Es sind noch viele gute Teams dabei, also schnappt euch schnell ein Team seid dabei!! die liga besteht aus 64 Mannschaften(4x16 Mannschaften) Europas, wenn eure...
von fifaeuro
182106.10.2010, 13:38
fifaeuro
© 2004 - 2012 www.programmierer-forum.de (srv02) | Communities | Impressum