Bekomme dauernd Runtimefehler - The variable is being used without being initialized...
-
DarkChip schrieb:
wo soll ich den bitte noch Tags verwenden ? - hab doch den code darin schon eingeschlossen ?
Nicht [ code ] sondern [ cpp ].
int main() { }int main() { }Unterschied nun klarer?

-
Wie der angehängte Aus- und Eingaben beweisen ist da noch ein Fehler drin:
http://ideone.com/qydkJ
Stand: Zeit der Beitragserstellung

Idee ist aber ausbaufähig.
f.-th.
-
Wo ist der Fehler? Ich hab das nicht nachgeprüft.
-
Lasse das doch mal für dich durchrechnen - da fällt es dir ja vielleicht auf

Wenn du deine Länge kennst und auch die anderen Eingaben, passt da das Ergebnis?
Denglisch? Da kann man sich auch für die eine oder andere Sprache entscheiden bei der Ausgabe

Was noch auffällt, dein Gewicht wird zwar abgefragt - aber wozu?
Das macht nur Sinn, wenn da noch Quelltext ergänzt wird.MfG f.-th.
-
double ideal = (size - 100) * (male_factor * male + female_factor * !male) / 100;Man kann es auch übertreiben mit den Optimierungen
Hast du schon mal vom ?:-Operator gehört?
-
CStoll schrieb:
double ideal = (size - 100) * (male_factor * male + female_factor * !male) / 100;Man kann es auch übertreiben mit den Optimierungen
Hast du schon mal vom ?:-Operator gehört?Zumal die Optimierung wirklich fragwürdig ist. Die Multiplikation des Faktors mit dem bool kostet einmal 2-15 Ticks für die Konvertierung des bool in einen double, dann nochmal 4-8 Ticks für die Multiplikation. Das Ganze zweimal (male und female), zuzüglich 3-6 Ticks für die Addition. Macht 15-52 Ticks zusammen. Branch misprediction penalty liegt bei 12-25 Ticks und wird, auch wenn 50/50 ne miese Verteilung ist, nicht immer greifen. Im Mittel liegt man mit dem ?: also deutlich utner dem male/female-Multiplikations-Konstrukt.
Ist natürlich alles nur ne Näherung und man müsste es von Prozessor zu prozessor ausmessen, was wirklich billiger ist, aber das ist auf jeden Fall ein Beispiel für premature optimization.
-
Das ist keine Optimierung sondern Faulheit.
-
Lol?
double ideal = (size - 100) * (male ? male_factor : female_factor) / 100;-> weniger zu tippen, leichter zu lesen, optimierte Faulheit

-
Na wenn du meinst. Ich mag ?: in Berechnungen nicht.
-
314159265358979 schrieb:
Na wenn du meinst. Ich mag ?: in Berechnungen nicht.
Geht mir auch so.
-
volkard schrieb:
Geht mir auch so.
Mir gefällts.
-
Post in falschen thread, sorry.
-
in Zeile 17 verwendest du eine variable ohne sie deklariert zu haben, darin liegt vielleicht dein Fehler.
cout << geschlecht;so würde ich das versuchen
//geschlecht = true = 1 für weiblich und geschlecht = false = 0 für männlich bool geschlecht;dann kannst du das auch in der if-Abfrage direkt integrieren ohne einen == operator.
if( geschlecht!=0 || geschlecht !=1) cout << "Fehleingabe!\n"; else if (geschlecht) idealgewichtfrau = ((körpergröße - 100) * 90) / 100; else if (!geschlecht) idealgewichtmann = ((körpergröße - 100) * 95) / 100;
-
DarkChip schrieb:
if (geschlecht == 0) idealgewichtfrau = ((körpergröße - 100) * 90) / 100; else if (geschlecht == 1) idealgewichtmann = ((körpergröße - 100) * 95) / 100;Würde ich eher machen zu
int geschlechtsfaktor; if (geschlecht == 0) geschlechtsfaktor = 90; else geschlechtsfaktor = 95; int idealgewichtfrau = ((körpergröße - 100) * geschlechtsfaktor) / 100;Doppelten Code vermeiden und Variablen immer so spät wie möglich anlegen.
-
314159265358979 schrieb:
Na wenn du meinst. Ich mag ?: in Berechnungen nicht.
Das mag Ansichtssache sein - ich habe es schon öfter vermisst. Aber auf jeden Fall ist es übersichtlicher als diese bool-Multiplikation.
-
Weiß einer wozu das Gewicht abgefragt wird?

Muß nicht auch die Haarfarbe abgefragt werden?
Nutzlosen Code vermeiden
