Hallo, ich bin am Verzweifeln. habe jetzt schon alle möglichen und
unmöglichen Varianten ausprobiert mein Programm zum laufen zu bekommen,
aber nichts hat wirklich geholfen. Andauernd bekomme ich folgende
Fehlermeldungen:
quelltext.c:22:20: error: expected expression before '[' token
quelltext.c:55:1: error: expected expression before 'Mensa_Essen'
quelltext.c:82:17: error: expected expression before 'ISO8601_JJJJMMTT'
quelltext.c:87:4: error: expected expression before 'Mensa_Essen'
quelltext.c:88:1: error: expected expression before 'else'
Das Programm dazu ist folgendes:
1
/*ISO-Normdatum aus 3 Zahlen: Jahr, Monat, Tag*/
2
typedefintISO8601_JJJJMMTT[3];
3
/* Struktur für ein Mensa-Gericht */
4
typedefstruct{
5
charbezeichnung[100];/* Bezeichnung des Gerichts */
6
/* Max. eine Angabe (Buchstabe) für Spezialkost:
7
'R', 'S', 'A', 'F', 'V' oder keine Angabe(' ') */
8
charspezialkost;
9
/* Max. 3 Angaben (Zahlen) für Zusatzstoffe. 0 bedeutet keine Angabe */
10
intzusatzstoffe[3];
11
intcentpreisStud;/* Studierendenpreis in Euro-Cent */
12
intcentpreisBed;/* Bedienstetenpreis in Euro-Cent */
13
charzusatz[20];/* Sonst. Angaben, z.B. "Grill" oder "Wok" */
Verzweifler schrieb:> Ich seh den Wald vor lauter Bäumen nicht
Wundert micht nicht. Musst du pro Leerzeichen und Leerzeile 1€ in die
Kaffeekasse zahlen?
Willst Du, dass wir Augenkrebs bekommen?
Lade mal Deine Datei in den notepad++ oder einen anderen C-Code fähigen
Editor und schau Dir mal an, was der zu Deinem grotten schlechten Code
bzgl.
(){} (offen/geschlossen) meint.
Dein Codingstyle ist eine Zumutung.
Hab jetzt mal die Datei angehangen, die Kritik war ja echt vernichtend.
Aber Ok, jeder fängt mal klein an. Wer mag kann sich das ja mal im
Compiler ansehen
Verzweifler schrieb:> Ich verstehe nicht was ihr meint, aahh.> Geht das denn z.B. mit dem Compiler besser?
Weißt du was eine Datei ist? Weißt du wie man Texte in eine normale,
unformatierte, Text-Datei speichert? Dann speichere deinen Quelltext in
solch eine Datei, und hänge diese hier im Forum an. So wie ich in obigem
Post. Das ist ziemlich einfach. Wenn du das nicht hinbekommst, solltest
du nicht Informatik studieren.
Das ganze ist im Übrigen vollkommen unabhängig von irgendeinem
Online-Compiler; wir wollen lediglich den Quellcode als normale,
unformatierte Textdatei haben, damit wir das selber durch unsere eigenen
Compiler schicken können, welchen wir auch immer jeweils bevorzugen.
Verzweifler schrieb:> zusatzstoffe[18]= {> {1="mit Konservierungsmittel"},> {2="mit Antioxidationsmittel"},
Denn er weiss nicht was er tut!
Verzweifler: Lass es, Du kannst kein C. Nimm Basic oder was Du sonst
wirklich kannst.
OldMen schrieb:> Verzweifler: Lass es, Du kannst kein C. Nimm Basic oder was Du sonst> wirklich kannst.
ganz meine Meinung. Das ist weder C noch PHP noch Perl noch sonst
irgendwas...
@ Verzweifler
Du hast eine Menge Probleme, u. a. hast du keine grundlegenden
Kenntnisse der Sprache C. Du solltest dir entweder ein Lehrbuch
verschaffen (z. B. Programmieren in C, Kernighan & Ritchie) oder ein
Online-Tutorial durcharbeiten (z. B.
http://www.tutorialspoint.com/cprogramming/index.htm).
Noch ein Tipp: Dümmliche Kommentare (z. B. EMV, OldMen, ...) unbedingt
ignorieren.
Da passt vieles nicht zusammen. Zum Beispiel diese Deklaration:
int zusatzstoffe[3];
bedeutet ja, dass man ein Array mit drei Elementen vom Typ int anlegt.
Man könnte jetzt Zuweisungen in der Art machen (einfach nur generell und
mal abgesehen davon, dass dieses Array ein Member einer Struktur ist):
zusatzstoffe[0] = 18; /* beliebige Zahl */
zusatzstoffe[1] = 27; /* beliebige Zahl */
zusatzstoffe[2] = 3; /* beliebige Zahl */
aber etwas anderes als eine Zahl zuzuweisen ergibt an dieser Stelle nun
mal keinen Sinn.
Wie wäre es, wenn Du die Aufgabenstellung vernünftig (!) beschreibst.
Also was gemacht werden soll, nicht wie es gemacht werden soll.
Und ja, Du brauchst unbedingt ein gutes Buch und/oder Tutorial zur
Programmiersprache C. Sonst wird das mit der Prüfung wahrscheinlich nix.
charbezeichnung[100];/* Bezeichnung des Gerichts */
3
/* Max. eine Angabe (Buchstabe) für Spezialkost:
4
'R', 'S', 'A', 'F', 'V' oder keine Angabe(' ') */
5
charspezialkost;
6
/* Max. 3 Angaben (Zahlen) für Zusatzstoffe. 0 bedeutet keine Angabe */
7
intzusatzstoffe[3];
8
intcentpreisStud;/* Studierendenpreis in Euro-Cent */
9
intcentpreisBed;/* Bedienstetenpreis in Euro-Cent */
10
charzusatz[20];/* Sonst. Angaben, z.B. "Grill" oder "Wok" */
11
}Mensa_Essen;
bezeichnung[] ist eine Zeichenkette mit maximal 99 (!) Zeichen
spezialkost ist ein einzelnes Zeichen
zusatzstoffe[] ist ein Array von drei Ganzzahlen
centpreisStud ist eine Ganzzahl
centpreisBed ebenso
char zusatz[] ist eine Zeichenkette mit maximal 19 (!) Zeichen
Und damit die ganze Struktur überhaupt im Speicher existiert, musst Du
mindestens ein Exemplar davon anlegen.