Fehler bei Programmieren von C

Gast #3473188
Lesenswert?

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
typedef int ISO8601_JJJJMMTT[3];
3
/* Struktur für ein Mensa-Gericht */
4
typedef struct {
5
char bezeichnung[100]; /* Bezeichnung des Gerichts */
6
/* Max. eine Angabe (Buchstabe) für Spezialkost:
7
'R', 'S', 'A', 'F', 'V' oder keine Angabe(' ') */
8
char spezialkost;
9
/* Max. 3 Angaben (Zahlen) für Zusatzstoffe. 0 bedeutet keine Angabe */
10
int zusatzstoffe[3];
11
int centpreisStud; /* Studierendenpreis in Euro-Cent */
12
int centpreisBed; /* Bedienstetenpreis in Euro-Cent */
13
char zusatz[20]; /* Sonst. Angaben, z.B. "Grill" oder "Wok" */
14

15
} Mensa_Essen;
16
#include <stdio.h>
17
#include <string.h>
18
int main (void){
19
int t;
20
int z;
21
((ISO8601_JJJJMMTT)[4]={
22
{2=20140107},
23
{3=20140108},
24
{4=20140109},
25
{5=20140110}};
26
(
27
zusatzstoffe[18]= {
28
{1="mit Konservierungsmittel"},
29
{2="mit Antioxidationsmittel"},
30
{3="mit Farbstoff"},
31
{4="mit Geschmacksverstaerker"},
32
{5="mit Schwefel"},
33
{6="mit Phosphat"},
34
{7="geschwaerzt"},
35
{8="gewachst"},
36
{9="mit Suessungsmittel"},
37
{10="enthaelt eine Phenylalaninquelle"},
38
{11="mit Sauerungsmitteln"},
39
{12="mit Stabilisatoren"},
40
{13="mit Phosphorsaeure"},
41
{14="mit Nitritpoekelsalz"},
42
{15=""},
43
{16="koffeinhaltig"},
44
{17="chininhaltig"}
45
};
46
spezialkost[6] = {
47
{'R'="mit Rindfleisch"},
48
{'S'="mit Schweinefleisch"},
49
{'A'="mit Alkohol"},
50
{'F'="fleischlos"},
51
{'V'="vegan"}
52
};))
53

54
((Mensa_Essen[5]){
55
Mensa_Essen Dienstag[5] = {
56
{"Putenschnitzel, paniert, Tomaten-Zucchini-Sauce",3 11 12, 100, 280, ' '},
57
{"Currylinsen mit Gemüse",'V', 120, 270, ' '},
58
{"Weiße Bohnensuppe mit Weizenbroetchen",'V', 2 3 11 12, 110, 240, ' '},
59
{"Hähnchenbrust spanische Sauce Wildreis", ' ' , 2 11 12, 355 , 495, ' '}
60
};
61
Mensa_Essen Mittwoch[5] = {
62
{"Haehnachendoener mit Balkangemuese Zaziki Zwiebelscheiben", 15 19, 100, 280, ' '},
63
{"Tortellini mit Ricotta-Spinat-Fuellung Napolisauce", 'F', 3 11 12, 120, 270, ' '},
64
{"Gruener Erbseneintopf Weizenbroetchen", 'V', 2 3 11 12, 110, 240, ' '},
65
{"Spinatreis mit Chili Paprika-Dip Parmesan", 1, 240, 380, ' '}
66
};
67
Mensa_Essen Donnerstag[5] = {
68
{"Wirsingroulade mit Hackfleischfüllung Specksauce", 'S', 2 3 6 11 12 14, 100, 280, ' '},
69
{"Italienisches Gemueserisotto", 'F', 1 3 11, 120, 270, ' '},
70
{"Gemueseeintopf Weizenbroetchen", 'V', 3 12, 110, 240, ' '},
71
{"Rinderhueftsteak Sauce Bernaise Pommes frites", 'R', 11 12, 535, 675, ' '}
72
};
73
Mensa_Essen Freitag[5] = {
74
{"Drei Jumbo Fischstaebchen in Knusperpanade Remouladensauce", 9 12, 120, 310, ' '},
75
{"Gnocchi Pestosauce", 'F', 3 11 12, 120, 270, ' '},
76
{"Linseneintopf Weizenbroetchen", 'V', 2 3 11 12, 110, 240, ' '},
77
}
78
});
79
{scanf("%i",&t);
80
for
81
(t=2; t<6; t++)
82
printf("Datum:",ISO8601_JJJJMMTT[t]);
83
}{
84
scanf("%i",&z);
85
for
86
(z=0;z<18;z++)
87
if(Mensa_Essen[2]==z)
88
else
89
printf("Essen: ",Mensa_Essen[z]);
90
}
91
return 0 ;
92
}


Kann mir vielleicht jemand weiter helfen? Ich seh den Wald vor lauter 
Bäumen nicht
Mfg
Verzweifler
Gast #3473215
Lesenswert?

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.
Gast #3473221
Lesenswert?

So, jetzt das Ganze nochmal mit deutlich mehr Platz dazwischen:
Hoffentlich hilft das.
1
typedef int ISO8601_JJJJMMTT[3];
2

3

4
/* Struktur für ein Mensa-Gericht */
5

6
typedef struct {
7
char bezeichnung[100]; /* Bezeichnung des Gerichts */
8
  
9
  
10
/* Max. eine Angabe (Buchstabe) für Spezialkost:
11

12
'R', 'S', 'A', 'F', 'V' oder keine Angabe(' ') */
13
  
14
char spezialkost;
15
  
16
/* Max. 3 Angaben (Zahlen) für Zusatzstoffe. 0 bedeutet keine Angabe */
17
  
18
  
19
  
20
int zusatzstoffe[3];
21
int centpreisStud; /* Studierendenpreis in Euro-Cent */
22
int centpreisBed; /* Bedienstetenpreis in Euro-Cent */
23
char zusatz[20]; /* Sonst. Angaben, z.B. "Grill" oder "Wok" */
24
  
25
} Mensa_Essen;
26

27

28

29

30
#include <stdio.h>
31
#include <string.h>
32

33
int main (void){
34
int t;
35
int z;
36
  
37
  
38
  
39
  
40
((ISO8601_JJJJMMTT)[4]={
41
{2=20140107},
42
{3=20140108},
43
{4=20140109},
44
{5=20140110}};
45
(
46
  
47
  
48
  
49
  
50
  
51
zusatzstoffe[18]= {
52
{1="mit Konservierungsmittel"},
53
{2="mit Antioxidationsmittel"},
54
{3="mit Farbstoff"},
55
{4="mit Geschmacksverstaerker"},
56
{5="mit Schwefel"},
57
{6="mit Phosphat"},
58
{7="geschwaerzt"},
59
{8="gewachst"},
60
{9="mit Suessungsmittel"},
61
{10="enthaelt eine Phenylalaninquelle"},
62
{11="mit Sauerungsmitteln"},
63
{12="mit Stabilisatoren"},
64
{13="mit Phosphorsaeure"},
65
{14="mit Nitritpoekelsalz"},
66
{15=""},
67
{16="koffeinhaltig"},
68
{17="chininhaltig"}
69
};
70
  
71
  
72
  
73
  
74
spezialkost[6] = {
75
{'R'="mit Rindfleisch"},
76
{'S'="mit Schweinefleisch"},
77
{'A'="mit Alkohol"},
78
{'F'="fleischlos"},
79
{'V'="vegan"}
80
};))
81
  
82
  
83
  
84
  
85
((Mensa_Essen[5]){
86
Mensa_Essen Dienstag[5] = {
87
{"Putenschnitzel, paniert, Tomaten-Zucchini-Sauce",3 11 12, 100, 280, ' '},
88
  
89
{"Currylinsen mit Gemüse",'V', 120, 270, ' '},
90
  
91
{"Weiße Bohnensuppe mit Weizenbroetchen",'V', 2 3 11 12, 110, 240, ' '},
92
  
93
{"Hähnchenbrust spanische Sauce Wildreis", ' ' , 2 11 12, 355 , 495, ' '}
94
  
95
};
96
  
97
  
98
  
99
  
100
  
101
Mensa_Essen Mittwoch[5] = {
102
{"Haehnachendoener mit Balkangemuese Zaziki Zwiebelscheiben", 15 19, 100, 280, ' '},
103
  
104
{"Tortellini mit Ricotta-Spinat-Fuellung Napolisauce", 'F', 3 11 12, 120, 270, ' '},
105
  
106
{"Gruener Erbseneintopf Weizenbroetchen", 'V', 2 3 11 12, 110, 240, ' '},
107
  
108
{"Spinatreis mit Chili Paprika-Dip Parmesan", 1, 240, 380, ' '}
109
  
110
};
111
  
112
  
113
  
114
  
115
  
116
Mensa_Essen Donnerstag[5] = {
117
  
118
{"Wirsingroulade mit Hackfleischfüllung Specksauce", 'S', 2 3 6 11 12 14, 100, 280, ' '},
119
    
120
    
121
{"Italienisches Gemueserisotto", 'F', 1 3 11, 120, 270, ' '},
122
  
123
  
124
{"Gemueseeintopf Weizenbroetchen", 'V', 3 12, 110, 240, ' '},
125
  
126
{"Rinderhueftsteak Sauce Bernaise Pommes frites", 'R', 11 12, 535, 675, ' '}
127
  
128
  
129
};
130
Mensa_Essen Freitag[5] = {
131
{"Drei Jumbo Fischstaebchen in Knusperpanade Remouladensauce", 9 12, 120, 310, ' '},
132
  
133
  
134
{"Gnocchi Pestosauce", 'F', 3 11 12, 120, 270, ' '},
135
  
136
  
137
{"Linseneintopf Weizenbroetchen", 'V', 2 3 11 12, 110, 240, ' '},
138
  
139
  
140
}
141
});
142
  
143
  
144
{scanf("%i",&t);
145
 
146
for
147
(t=2; t<6; t++)
148
  
149
  
150
printf("Datum:",ISO8601_JJJJMMTT[t]);
151
 
152
}{
153
scanf("%i",&z);
154
  
155
  
156
for
157
(z=0;z<18;z++)
158
  
159
  
160
if(Mensa_Essen[2]==z)
161
  
162
  
163
else
164
  
165
printf("Essen: ",Mensa_Essen[z]);
166
  
167
  
168
}
169
return 0 ;
170
}
Gast #3473230
Lesenswert?

Genug Leerzeichen - ja
Genug Leerzeilen - Nein
Einrückung - Nein
Als Anhang - Nein

Nochmal versuchen.

Verzweifler schrieb:
> ((ISO8601_JJJJMMTT)[4]={
> {2=20140107},
> {3=20140108},
> {4=20140109},
> {5=20140110}};
> (
>
> zusatzstoffe[18]= {
> {1="mit Konservierungsmittel"},
> {2="mit Antioxidationsmittel"},
> {3="mit Farbstoff"},
> {4="mit Geschmacksverstaerker"},
> {5="mit Schwefel"},
> {6="mit Phosphat"},
> {7="geschwaerzt"},
> {8="gewachst"},
> {9="mit Suessungsmittel"},
> {10="enthaelt eine Phenylalaninquelle"},
> {11="mit Sauerungsmitteln"},
> {12="mit Stabilisatoren"},
> {13="mit Phosphorsaeure"},
> {14="mit Nitritpoekelsalz"},
> {15=""},
> {16="koffeinhaltig"},
> {17="chininhaltig"}
> };
Was zum Geier soll das sein? In welcher Programmiersprache ist das denn 
gültiger Code?
Gast #3473299
Lesenswert?

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.
Gast #3473355
Lesenswert?

@ 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.
#3473361
Lesenswert?

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.
#3473386
Lesenswert?

Ah, jetzt, ja: Das hier ist die Aufgabenstellung.
http://www.ifi.mv.fh-duesseldorf.de/download/zielke_Inf1P.htm

Um genau zu sein, Projektaufgabe 3:
http://www.ifi.mv.fh-duesseldorf.de/download/Informatik1PraktikumWS2013/PA3.pdf

So, und jetzt überlegst Du Dir mal, wie Du Dir vorgegebene Datenstruktur 
sinnvoll befüllen kannst:

1
typedef struct {
2
    char bezeichnung[100]; /* Bezeichnung des Gerichts */
3
    /* Max. eine Angabe (Buchstabe) für Spezialkost:
4
    'R', 'S', 'A', 'F', 'V' oder keine Angabe(' ') */
5
    char spezialkost;
6
    /* Max. 3 Angaben (Zahlen) für Zusatzstoffe. 0 bedeutet keine Angabe */
7
    int zusatzstoffe[3];
8
    int centpreisStud; /* Studierendenpreis in Euro-Cent */
9
    int centpreisBed; /* Bedienstetenpreis in Euro-Cent */
10
    char zusatz[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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren