Projektaufgabe
-
Hallo Leute,
Ich habe folgendes Problem:
Ich muss für ein Informatik Praktikum eine Projekt Aufgabe lösen und bin auch schon gut voran gekommen. Nun habe ich aber folgendes Problem: Wenn ich das vorliegende Programm prüfen lasse kommt die Fehlermeldung:" Fehlermeldungen oder Warnungen (18.01.2014 12:48)
quelltext.c: In function 'main':
quelltext.c:96:29: error: 'centpreisStud' undeclared (first use in this function)
quelltext.c:96:29: note: each undeclared identifier is reported only once for
each function it appears in
ch function it appears in"
Ich verstehe schon dass der Fehler darin besteht, dass centpreisStud nicht in der main Funktion deklariert ist, allerdings soll das Programm ja auch auf den integer in der Datenstruktur zugreifen. Wie löse ich das Problem?
#include <stdio.h>
#include <string.h>
/*ISO-Normdatum aus 3 Zahlen: Jahr, Monat, Tag*/
typedef int ISO8601_JJJJMMTT[3];/*Struktur für ein Mensa-Gericht*/
typedef struct {
char bezeichnung [100];
/Max. eine Angabe (Buchtstabe)für Spezialkost:
'R', 'S', 'A', 'F', 'V', oder keine Angabe(' ')/
char spezialkost;/*Max. 3 Angaben (Zahlen) für Zusatzstoffe. 0 beudetet keine Angabe*/
int zusatzstoffe[3];
int centpreisStud; /*Studierendenpreis in Euro-Cent*/
int centpreisBed; /*Bedienstetenpreis in Euro-Cent*/
char zusatz[20]; /*Sonst. Angaben, z.B. "Grill" oder "Wok"*/
} Mensa_Essen;typedef struct {
ISO8601_JJJJMMTT Datum;
Mensa_Essen Essens_Typ[4];
int Wochentag[4];
} Essen_Tag;int main (void) {
int i, k, maximalpreis;
char spezialk;Essen_Tag Plan[4] =
{
{
{2014, 01, 20},
{
{"Kesselgulasch", 'S', { 12, 15, 19}, 100, 280, " "},
{"Vollkornspaghetti Gemüsebolognese", 'V',{3, 11, 20}, 120, 270, " "},
{"Rheinischer Schnippelbohneneintopf", 'V',{2, 3, 11}, 110, 240, "Eintopf"},
{"Hähnchenbruststreifen", ' ', {1, 3, 11}, 365, 505, "Wok"}
} ,1
},{
{2014, 01, 21},
{
{"Nudelauflauf Havana mit Hähnchenfleisch", ' ', {1, 3, 11}, 100, 280, " "},
{"Kartoffel-Couscous mit Gemüse", 'V', {2, 11, 18}, 120, 270, " "},
{"Weiße Bohnensuppe", 'V', {2, 3, 11}, 110, 240, "Eintopf"},
{"Frikadelle mit Bratkartoffeln und Speck", 'S', {12, 20, 22}, 325, 465, " "},
}, 2},
{
{2014, 01, 23},
{
{"Putenbrustgulsch Estragonsauce", ' ', {1, 3, 11}, 100, 280, " "},
{"Gemüsenuggets Paprika-Dip", 'F', {9, 19, 20}, 120, 270, " "},
{"Grüner Erbseneintopf", 'V', {2, 3, 11}, 110, 240, "Eintopf"},
{"Gemüse-Spätzle-Pfanne mit Tofu", 'F', {20, 21, 31}, 305, 445, "Mensa Vital"},
}, 3
},{
{2014, 01, 23},
{
{"Sechs Hähnchennuggets Mango Relish ", ' ', {20, 3, 9}, 100, 280, " "},
{"Gemüsepizza", 'F', {1, 3, 15}, 120, 270, " "},
{"Gemüseeintopf", 'V', {22, 0, 0}, 110, 240, "Eintopf"},
{"Ribeyesteak Sauce béarnaise", 'R', {11, 12, 15}, 645, 785, "Grill"},
}, 4
}};
spezialk = getchar();
scanf("%i", &maximalpreis);for (i = 0; i<=3, i = i + 1)
for (k = 0; k <=3, k = k + 1)
Plan[i].Essens_Typ[k].spezialkostif (maximalpreis <= centpreisStud && spezialk == Plan[i].Essen_Typ[k].spezialkost)
printf("Ihre Wahlmöglichkeit“)return 0;
}
-
Plan[i].Essen_Typ[k].centpreisStud
-
#include <stdio.h>
/*ISO-Normdatum aus 3 Zahlen: Jahr, Monat, Tag*/
typedef int ISO8601_JJJJMMTT[3];/*Struktur für ein Mensa-Gericht*/
typedef struct {
char bezeichnung [100];
/Max. eine Angabe (Buchtstabe)für Spezialkost:
'R', 'S', 'A', 'F', 'V', oder keine Angabe(' ')/
char spezialkost;/*Max. 3 Angaben (Zahlen) für Zusatzstoffe. 0 beudetet keine Angabe*/
int zusatzstoffe[3];
int centpreisStud; /*Studierendenpreis in Euro-Cent*/
int centpreisBed; /*Bedienstetenpreis in Euro-Cent*/
char zusatz[20]; /*Sonst. Angaben, z.B. "Grill" oder "Wok"*/
} Mensa_Essen;typedef struct {
ISO8601_JJJJMMTT Datum;
Mensa_Essen Essens_Typ[4];
int Wochentag[4];
} Essen_Tag;int main (void) {
Essen_Tag Plan[4] =
{
{
{2014, 01, 20},
{
{"Kesselgulasch", 'S', { 12, 15, 19}, 100, 280, " "},
{"Vollkornspaghetti Gemüsebolognese", 'V',{3, 11, 20}, 120, 270, " "},
{"Rheinischer Schnippelbohneneintopf", 'V',{2, 3, 11}, 110, 240, "Eintopf"},
{"Hähnchenbruststreifen", ' ', {1, 3, 11}, 365, 505, "Wok"}
} ,1
},{
{2014, 01, 21},
{
{"Nudelauflauf Havana mit Hähnchenfleisch", ' ', {1, 3, 11}, 100, 280, " "},
{"Kartoffel-Couscous mit Gemüse", 'V', {2, 11, 18}, 120, 270, " "},
{"Weiße Bohnensuppe", 'V', {2, 3, 11}, 110, 240, "Eintopf"},
{"Frikadelle mit Bratkartoffeln und Speck", 'S', {12, 20, 22}, 325, 465, " "},
}, 2},
{
{2014, 01, 23},
{
{"Putenbrustgulsch Estragonsauce", ' ', {1, 3, 11}, 100, 280, " "},
{"Gemüsenuggets Paprika-Dip", 'F', {9, 19, 20}, 120, 270, " "},
{"Grüner Erbseneintopf", 'V', {2, 3, 11}, 110, 240, "Eintopf"},
{"Gemüse-Spätzle-Pfanne mit Tofu", 'F', {20, 21, 31}, 305, 445, "Mensa Vital"},
}, 3
},{
{2014, 01, 23},
{
{"Sechs Hähnchennuggets Mango Relish ", ' ', {20, 3, 9}, 100, 280, " "},
{"Gemüsepizza", 'F', {1, 3, 15}, 120, 270, " "},
{"Gemüseeintopf", 'V', {22, 0, 0}, 110, 240, "Eintopf"},
{"Ribeyesteak Sauce béarnaise", 'R', {11, 12, 15}, 645, 785, "Grill"},
}, 4
}
};int i, k, maximalpreis;
char spezial;
spezial = getchar();
scanf("%i", &maximalpreis);for (i = 0; i<=3; i = i + 1)
for (k = 0; k <=3; k = k + 1)Plan[i].Essens_Typ[k].spezialkost;
Plan[i].Essens_Typ[k].centpreisStud;if (Plan[i].Essens_Typ[k].spezialkost == spezial && Plan[i].Essens_Typ[k].centpreisStud > maximalpreis)
printf("Ihre Wahlmöglichkeiten:");return 0;
}Ok habe mein Programm jetzt so erweitert. Das Nächste Problem ist wenn ich jetzt zum Beispiel den Buchstaben V für die Spezialkost einlesen lasse und einen Preis von 150 Cent gibt er mir keine Ausgabe aus.
Eigentlich müsste ich doch dann den Satz "Ihre Wahlmöglichkeiten:" heraus bekommen?!
-
Bitte editiere deine Beiträge und füge die C-Tags hinzu, damit man deinen Code besser lesen kann, danke.
-
Th69 schrieb:
Bitte editiere deine Beiträge und füge die C-Tags hinzu, damit man deinen Code besser lesen kann, danke.
Ist ganz einfach:
An den Anfang vom Code gehen und dann auf den C-Button unter dem klicken (dann bekommt der Button ein und dann nochmal an das Ende vom Code und wieder darauf klicken.