verschiedene Fragen

So... ich bin ein absoluter Neuling in Sachen Programmierung und habe ein paar Fragen, deswegen hab ich mir gleich selber nen Sammelthread aufgemacht :D

AAAlso:
Mein erstes Problem wäre ein Programm, was ich erst in PASCAL geschrieben habe und dann nach C übersetzen wollte.
In PASCAL funktioniert es ganz einwandfrei, in C hab ich es auch schon einigermaßen übersetzt (inhaltlich :D )
aber ich habemehrere mysteriöse Fehlermeldungen (siehe Anhang)

mein Compiler ist Code::Blocks 8.02
Das Programm seht ihr, obwohl ihr wahrscheinlich Augenkrebs von meinem Code bekommt, hier:
Code:
#include <stdio.h>#include <conio.h>#include <time.h>#include <stdlib.h>int ZIELWERT, ZUFALLSWERT, FAKTOR, LEVEL, AUTO, CHEAT;long aktueller;char Passwort[10], char1;int main(){ srand ( time(NULL) ); printf ("Es wird nun eine Zufallszahl zwischen 0 und 500 erzeugt. Ihr Ziel ist es nihre aktuelle Zahl der Zufallszahl(Zielwert) anzugleichen.n"); getch(); printf ("Dazu geben sie einen Faktor ein, der mit einer zufälligen Zahl zwischen 0 und n-je nach level- 20 oder höher multipliziert wird.n"); getch(); char1 = "k"; while (char1 != "n") { printf (" Welches Level (1-10 oder mehr) "); scanf ("%d", &LEVEL); LEVEL = ((LEVEL + 1) * 10 +1); printf ("Wenn sie das Spiel schon durchaben, können sie mit demnPasswort Cheats Freischalten.nnPasswort: "); scanf ("%c", Passwort); IF Passwort = "Monarch" { printf ("Autokerrektur des Faktors ein? (ja/nein)"); scanf ("%c", Passwort); AUTO = (Passwort == "ja") ? 1:0; printf ("Zufall aus? (Zufallszahl bleibt 1) (ja/nein)"); scanf ("%c", Passwort); CHEAT = (Passwort == "ja") ? 1:0; } aktueller = -1; ZIELWERT = rand(501); printf ("Zielwert= %dn",&ZIELWERT); while (ZIELWERT!=aktueller); { printf("n Faktor: "); scanf ("%d", FAKTOR); if (AUTO == 1); if (aktueller > ZIELWERT) FAKTOR = FAKTOR * -1; ZUFALLSWERT = rand(LEVEL); if (CHEAT ==1) ZUFALLSWERT = 1; aktueller = aktueller + ZUFALLSWERT * FAKTOR; printf ("%d * %d = %d n %d <--Zielwert n %d <--aktueller Wert", ZUFALLSWERT, FAKTOR, ZUFALLSWERT*FAKTOR, ZIELWERT, aktueller); } printf("Gut gemacht. Passwort: Monarch"); while (char1 =! "j") || (char1 =! "n"); { printf("nochmal? (j/n) "); CHEAT = 0; AUTO = 0; Passwort = "RESET"; char1 = getch(); clrscr(); } }}
was habe ich Falschgemacht?Ich bitte um eine Erläuterung meiner Fehler, damit ich hier nicht Pausenlos reinschreiben muss ;)

danke schon im Vorraus

mfg
-Maric

PS: Wie bekomm ich mehrzeiligen code? o0
PPS: so hab ne zwischenlösung
 
Ich würde dir empfehlen, dir erstmal ein paar Tutorials, oder ein gutes Buch über C zu Gemüte zu führen.
Habe deinen Code mal kurz überflogen. Zu den Fehlern:

- ein einzelnes Zeichen wird mit 'a' gekennzeichnet, "a" ist ein String
- ein Semikolon hinter nem Schleifenkopf ? la while(irgendwas); führt nicht den Anweisungsblock sondern nur ";", also nichts aus
- Stringzuweisungen wie string="text" gibt es in C nicht, da musst du dir die Mühe machen, den String selbst an die Adresse zu kopieren. (strncpy, sprintf o.ä.)


P.S.
Bitmaps als Dateianhang sind nicht schön ;)
 
Gut, fangen wir mal erstmal an, alle Fehler kann ich dir aber glaub ich auch nicht sagen:

Deine Fehlermeldung sagt dir ja schonmal die einzelnen Zeilen.
Zeile 17: Soweit ich mich erinnern kann stehen "k" für einen String, also eine Char-Array. Da du das in ein Char speichern willst solltest du 'k' schreiben.
Gleiches gilt für Zeile 18
Zeile 25: if muss glaub ich klein geschrieben werden und dann muss der Vergleich soweit ich mich erinnern kann in () geschrieben werden
Für die nächsten 4 Fehlerzeilen solltest du dir mal http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html durchlesen. Ist zwar für C++, sollte bei C aber genauso sein
Zeile 51: Probier mal den kompletten Ausdruck für while nochmal zu klammern, also while ((Ausdruck1) || (Ausdruck2))
Zeile 56: Bin mir nicht ganz sicher, aber ich denke mal es liegt daran, dass du die Variable Passwort nie wirklich deklariert hast. Du benutzt sie zwar aber beim Zuweisen scheint dann der Fehler zu kommen.
Zeile 58: Funktion ist hier nicht bekannt. Da fehlt wohl ein include
 
danke für die schnelle Antwort...
Ich habe das PASCAL und das C tutorial von tutorials.at hinter mir ;)
so werde jetzt mal alles umsetzen und
Danke ;)^^

ein Problem bleibt mir allerdings immernoch...
Warum gibt er bei
while ((char1 != 'j')) || ((char1 != 'n'))
immernoch
error: expected primary extpression before '||' token
aus?
 
Hi..

Versuchs mal so
while ((char1 != 'j') || (char1 != 'n'))
Immer aufpassen beim Klammersetzten ;)

mfg
 
:oops: ... Danke :D funktioniert jetzt, zwar noch nicht so wie ich will, aber funktioniert^^
Daaaanke
und evtl schrieb ich hier noch was rein^^
 
Zurück
Oben