Hallo!
Während ich dabei bin mich mit C++ zu beschäftigen,
habe ich mir zu Übungszwecken ein kleines Programm geschrieben.
#include <iostream>
#include <math.h>
using namespace std;
int e, a; // Stückzahl, Verteilung (allocation)
float p, r; // Verpackungen, Restwert
int main ()
{
cout << "Stückzahl:";
cin >> e;
cout << "Einheit(en) pro Verpackung:";
cin >> a;
p = ceil( e/a );
r = e%a;
cout << "Verpackungen: " << p << " Letzte Verpackung: " << r << " Stück" << endl;
return 0;
}
Laut Beschreibung sollte ceil() doch in jedem Fall aufrunden.
Mein Test mit e = 20 und a = 7 ergibt mir aber 2.
Jetzt tippe ich darauf, dass aus int/int kein float p wird, obwohl p als float deklariert wurde.
Liege ich mit meiner Vermutung richtig?
Und wenn ja, wie bekomme ich den Restwert von e/a wenn der Modulus keine float-Variablen akzeptiert?
Oder wie bekomme ich einen float-Wert aus den beiden Integern?
Oder liegt mein Fehler ganz woanders?
Danke für Hinweise!
Grüße, Matze