Bekomme dauernd Runtimefehler - The variable is being used without being initialized...
-
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
