Forum: Compiler & IDEs Fehler bei Programmieren von C


von Verzweifler (Gast)


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

: Bearbeitet durch User
von Verzweifler (Gast)


Lesenswert?

Ich hoffe mal, dass ich hier das richtige Forum gefunden habe. Falls das 
nicht der Fall ist, bitte ich das zu entschuldigen

von (prx) A. K. (prx)


Lesenswert?

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?

: Bearbeitet durch User
von Verzweifler (Gast)


Lesenswert?

ich locker das ganze noch einmal auf, sekunde

von Floh (Gast)


Lesenswert?

Stell deinen Code als Anhang rein. Dann können ihn ander Leute auch 
kompilieren oder zumindest ordentlich anschauen.

von help (Gast)


Lesenswert?

Man, man, wieder blöde Kommentare.

Das typedef wird falsch benutzt. Lies dir das noch einmal durch.

von OldMen (Gast)


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.

von Verzweifler (Gast)


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
}

: Bearbeitet durch User
von Dr. Sommer (Gast)


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?

von Dr. Sommer (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Genug Leerzeichen - ja
> Genug Leerzeilen - Nein
Upps, umgekehrt.

von Verzweifler (Gast)


Angehängte Dateien:

Lesenswert?

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

von Dr. Sommer (Gast)


Lesenswert?

Datei im Anhang - Ja
Kann Datei im Anhang compilieren - Nein, da keine C-Datei, sondern ein 
PDF
Einrückung - Nein

Nochmal versuchen.

von Dr. Sommer (Gast)


Angehängte Dateien:

Lesenswert?

Kleine Hilfestellung:
So hängt man eine C-Datei an und rückt sie sinnvoll ein. Versuch es 
nachzumachen.

von Verzweifler (Gast)


Lesenswert?

Ich verstehe nicht was ihr meint, aahh.
Geht das denn z.B. mit dem Compiler besser?

http://www.compileonline.com/compile_c_online.php

von Peter II (Gast)


Lesenswert?

Verzweifler schrieb:
> Ich verstehe nicht was ihr meint

> {2=20140107}
das ist nun mal kein C - perl könnte es sein.

von Dr. Sommer (Gast)


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.

von OldMen (Gast)


Lesenswert?

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.

von EMV (Gast)


Lesenswert?

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...

von Davis (Gast)


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.

von Mark B. (markbrandis)


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.

: Bearbeitet durch User
von Mark B. (markbrandis)


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.

: Bearbeitet durch User
von Dirk B. (dirkb2)


Lesenswert?

Die Aufgabenstellung gibt es hier: http://www.c-plusplus.de/forum/322752

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.