.j
-
Jetzt bin ich soweit, dass er mir zu jeder Disziplin ein u ausgibt.
#include<stdio.h> int grenzen_ermitteln(char geschlecht, char disziplin, int *ogrenze, int *ugrenze) { int untergrenze, obergrenze; if(geschlecht == 'm' && disziplin == 'L') { untergrenze = 400; obergrenze = 800; } else if(geschlecht == 'm' && disziplin == 'H') { untergrenze = 300; obergrenze = 600; } else if(geschlecht == 'm' && disziplin == 'W') { untergrenze = 500; obergrenze = 1000; } else if(geschlecht == 'w' && disziplin == 'L') { untergrenze = 360; obergrenze = 720; } else if(geschlecht == 'w' && disziplin == 'H') { untergrenze = 270; obergrenze = 540; } else if(geschlecht == 'w' && disziplin == 'W') { untergrenze = 450; obergrenze = 900; } *ogrenze = obergrenze; *ugrenze = untergrenze; return 0; } char urkunde_ermitteln(int *lauf, int *hochsprung, int *weitwurf, int *ugrenze, int *ogrenze) { int laufpunkte, hochsprungpunkte, weitwurfpunkte, untergrenze, obergrenze; char geschlecht; char disziplin; char urkunde = 'u'; //printf("%d, %d\n", untergrenze, obergrenze); if(geschlecht == 'm' && disziplin == 'L') { if(laufpunkte < untergrenze) { urkunde = 'T'; } else if(laufpunkte >= untergrenze && laufpunkte <= obergrenze) { urkunde = 'S'; } else if(laufpunkte > obergrenze) { urkunde = 'E'; } } else if(geschlecht == 'm' && disziplin == 'H') { if(hochsprungpunkte < untergrenze) { urkunde = 'T'; } else if(hochsprungpunkte >= untergrenze && hochsprungpunkte <= obergrenze) { urkunde = 'S'; } else if(hochsprungpunkte > obergrenze) { urkunde = 'E'; } } else if(geschlecht == 'm' && disziplin == 'W') { if(weitwurfpunkte < untergrenze) { urkunde = 'T'; } else if(weitwurfpunkte >= untergrenze && weitwurfpunkte <= obergrenze) { urkunde = 'S'; } else if(weitwurfpunkte > obergrenze) { urkunde = 'E'; } } else if(geschlecht == 'w' && disziplin == 'L') { if(laufpunkte < untergrenze) { urkunde = 'T'; } else if(laufpunkte >= untergrenze && laufpunkte <= obergrenze) { urkunde = 'S'; } else if(laufpunkte > obergrenze) { urkunde = 'E'; } } else if(geschlecht == 'w' && disziplin == 'H') { if(hochsprungpunkte < untergrenze) { urkunde = 'T'; } else if(hochsprungpunkte >= untergrenze && hochsprungpunkte <= obergrenze) { urkunde = 'S'; } else if(hochsprungpunkte > obergrenze) { urkunde = 'E'; } } else if(geschlecht == 'w' && disziplin == 'W') { if(weitwurfpunkte < untergrenze) { urkunde = 'T'; } else if(weitwurfpunkte >= untergrenze && weitwurfpunkte <= obergrenze) { urkunde = 'S'; } else if(weitwurfpunkte > obergrenze) { urkunde = 'E'; } } *lauf = laufpunkte; *hochsprung = hochsprungpunkte; *weitwurf = weitwurfpunkte; *ugrenze = untergrenze; *ogrenze = obergrenze; return urkunde; } char urkunde_ausgeben(char disziplin, char urkunde) { printf("100m-Lauf: %c\n", urkunde); printf("Hochsprung: %c\n", urkunde); printf("Weitwurf: %c\n", urkunde); return urkunde; } int main(void) { int laufpunkte, hochsprungpunkte, weitwurfpunkte; char geschlecht, disziplin, urkunde; int untergrenze, obergrenze; printf("Bitte Punkte fuer 100m-Lauf, Hochsprung und Weitwurf (durch Komma getrennt) eingeben: "); scanf("%d, %d, %d", &laufpunkte, &hochsprungpunkte, &weitwurfpunkte); printf("Bitte Geschlecht eingeben (m oder w): "); scanf(" %c", &geschlecht); disziplin = 'L'; disziplin = 'H'; disziplin = 'W'; grenzen_ermitteln(geschlecht, disziplin, &obergrenze, &untergrenze); urkunde = urkunde_ermitteln(&laufpunkte, &hochsprungpunkte, &weitwurfpunkte, &untergrenze, &obergrenze); urkunde_ausgeben(disziplin, urkunde); return 0; }
Irgendwo ist immer noch ein richtig doofer Fehler drin, aber ich finde ihn einfach nicht.
Ich hab jetzt bei der 2. Funktion mit Zeigern gearbeitet. Ist das soweit richtig?
-
stellst du dich absichtlich blöd, oder willst du mich anflirten
-
_-- schrieb:
stellst du dich absichtlich blöd, oder willst du mich anflirten
Haha. -.-
Ich stehe gerade wirklich auf dem Schlauch...
-
Juli84 schrieb:
_-- schrieb:
stellst du dich absichtlich blöd, oder willst du mich anflirten
Haha. -.-
Ich stehe gerade wirklich auf dem Schlauch...stimmt, auf meinem und das taugt mir überhaupt nicht
-
_-- schrieb:
Juli84 schrieb:
_-- schrieb:
stellst du dich absichtlich blöd, oder willst du mich anflirten
Haha. -.-
Ich stehe gerade wirklich auf dem Schlauch...stimmt, auf meinem und das taugt mir überhaupt nicht
Hilft mir nicht wirklich bei meinem Problem weiter... -.-
-
dann geh ein paar schritte zurück, lies die posts und lös' unser beider probleme!
-
DirkB schrieb:
Deiner Funktion
urkunde_ermitteln
gibst du laufpunkte, hochsprungpunkte, weitwurfpunkte, untergrenze und obergrenze mit.
In der Funktion arbeitest du aber mit geschlecht und disziplin.
Woher soll die Funktion die denn kennen?Da nütz es auch nichts, wenn du die erst genannten Parameter als Zeiger übergibst, denn die willst du doch gar nicht verändern.
Deine Funktion muss so aussehen:char urkunde_ermitteln(int laufpunkte, int hochsprungpunkte, int weitwurfpunkte, int untergrenze, int obergrenze, char geschlecht, char disziplin) { char urkunde = 'u'; .... // deine Rest hier }
wie der Aufruf aussehen muss, kannst du dir hoffentlich denken.
-
DirkB schrieb:
DirkB schrieb:
Deiner Funktion
urkunde_ermitteln
gibst du laufpunkte, hochsprungpunkte, weitwurfpunkte, untergrenze und obergrenze mit.
In der Funktion arbeitest du aber mit geschlecht und disziplin.
Woher soll die Funktion die denn kennen?Da nütz es auch nichts, wenn du die erst genannten Parameter als Zeiger übergibst, denn die willst du doch gar nicht verändern.
Deine Funktion muss so aussehen:char urkunde_ermitteln(int laufpunkte, int hochsprungpunkte, int weitwurfpunkte, int untergrenze, int obergrenze, char geschlecht, char disziplin) { char urkunde = 'u'; .... // deine Rest hier }
wie der Aufruf aussehen muss, kannst du dir hoffentlich denken.
Vielen Dank, Dirk!
So, jetzt hab ich in der Ausgabe überall ein S stehen, was ja für Siegerurkunde steht. Aber laut Aufgabenstellung muss bei der Disziplin Hochsprung E, also Ehrenurkunde stehen. Muss ich nicht noch irgendwie festhalten, dass laufpunkte zum 100m-Lauf, hochsprungpunkte zu Hochsprung und weitwurfpunkte zu Weitwurf gehören?
-
jetzt weiß ich, warum frauen immer so schnell rauf kommen und doch nichts können... ein depp findet sich doch immer
-
Du hast doch aber nur eine Urkunde. So steht es in deinem Programm.
disziplin = 'L'; disziplin = 'H'; disziplin = 'W'; grenzen_ermitteln(geschlecht, disziplin, &obergrenze, &untergrenze); // hier rufst du mit diszipli zu 'W' auf urkunde = urkunde_ermitteln(&laufpunkte, &hochsprungpunkte, &weitwurfpunkte, &untergrenze, &obergrenze); // also berechnest du auch nur für 'W' urkunde_ausgeben(disziplin, urkunde);
Noch etwas:
Wenn du wie hier:char urkunde_ermitteln(int laufpunkte, int hochsprungpunkte, int weitwurfpunkte, int untergrenze, int obergrenze) { char geschlecht; char disziplin; if(geschlecht == 'm' && disziplin == 'L') ...}
eine Variable benutz, ohne ihr vorher einen Wert zugewiesen zu haben,
dann gibt es zwar keinen Fehler, aber der Compiler ist so nennt und warnt dich.
In der Art: "Benutzung der Variablen geschlecht ohne vorherige Zuweisung".Wenn du so eine Warnung nicht bekommen hast, musst du die Einstellungen für die Warnungen erhöhen.
Dann behandle Warnungen, als wären es Fehler.
Du kannst ein Programm so schreiben, dass es keine WArnungen mehr gibt.
-
_-- schrieb:
jetzt weiß ich, warum frauen immer so schnell rauf kommen und doch nichts können... ein depp findet sich doch immer
Du läßt dich noch von Nicknames beeinflussen?
Was soll man dann von deinen Morsezeichen im Zeitalter von Videoübertragung halten?
-
DirkB schrieb:
_-- schrieb:
jetzt weiß ich, warum frauen immer so schnell rauf kommen und doch nichts können... ein depp findet sich doch immer
Du läßt dich noch von Nicknames beeinflussen?
natürlich nicht, was denkst du von mir
DirkB schrieb:
Was soll man dann von deinen Morsezeichen im Zeitalter von Videoübertragung halten?
hier ist's define, falls dich der ursprung interessiert...
-
_-- schrieb:
jetzt weiß ich, warum frauen immer so schnell rauf kommen und doch nichts können... ein depp findet sich doch immer
Ich fand's wirklich nett, dass er so geduldig mit mir war!
Vielen lieben Dank! Hab jetzt auch die richtige Ausgabe.
-
Juli84 schrieb:
_-- schrieb:
jetzt weiß ich, warum frauen immer so schnell rauf kommen und doch nichts können... ein depp findet sich doch immer
Ich fand's wirklich nett, dass er so geduldig mit mir war!
ja, es ist schon ein schätzchen unser dirk