2017-05-27 5 views
0

Ich habe Probleme mit ein paar Zeilen Code in meinem C++ - Programm. Ich versuche, Werte von zwei Arrays zu nehmen, einige einfache Arithmetik zu erzeugen und die Ergebnisse in einem dritten Array zu speichern. Hier ist ein Teil des Codes, den ich geschrieben habe. Ich habe überprüft, ob die ersten beiden Arrays Werte zugewiesen haben. Das ist das einzige Problem, das ich mir vorstellen konnte, weil die dritten Array-Elemente immer noch null sind.C++ Array-Arithmetik

batAvg[i] = round((hits[i]/atBats[i]) * 1000); 

Vielen Dank im Voraus für die Hilfe!

+0

Diese Frage kommt viel auf. Versuchen Sie 'hits [i] * 1000.0/atBats [i]'. – dasblinkenlight

+0

Seufzen. '(trifft [i] * 1000 + 500)/atBats [i]'. Hinzufügen von 500 zum Runden, alles als ganze Zahlen. – 1201ProgramAlarm

+0

Das hat definitiv funktioniert! Danke für Ihre Hilfe. – user658070

Antwort

0

Der Typ batAvg muss float oder double sein. Wenn es ein int ist, wird die Antwort auf eine Ganzzahl (fast sicher 0) abgeschnitten, selbst wenn alle anderen Werte im Ausdruck Gleitkomma sind.

+0

Oh, Duh. Ich dachte, es wäre ein Gleitkomma-Problem, aber das ist der Grund, warum der ursprüngliche Code mit 1000 multipliziert wurde. Tut mir leid. – waltman