2017-01-26 1 views
0

HELP bitte. Ich bin neu, also bitte sei nett und beschreibend. Ich habe dies in Visual Studio programmiert und das Ziel ist herauszufinden, wie viele L-, M- und S-Tabletts ich benötige, basierend auf der Anzahl der Teilnehmer. Ich versuche, durch Rest zu teilen, und ich bekomme einen Fehler in den letzten zwei Zeilen. "Ausdruck muss integralen oder nicht gekürzten Enum-Typ haben" - Ich weiß nicht einmal, was das bedeutet. Englisch Bitte?Integer Division und Rest

#include <iostream> 
#include <iomanip> 
#include <cmath> 

using namespace std; 

int main() 
{ 


//prompt user 
    cout << "Please enter number of guests attending event:"; 
    double attendees; 
    cin >> attendees; 

    double large_trays = attendees/7; 

    double medium_trays = large_trays % 3; 

    double small_trays = medium_trays % 1; 

Antwort

0

Das Problem ist, dass Sie eine Variable vom Typ 'Double' verwenden. Der Modulo-Operator ist jedoch nur für Integer-Variablen wie 'int' verfügbar.

Verwenden Sie entweder 'int' statt 'double' oder verwenden Sie Typ Casting.

+0

Dank !! Versuchte es und es hat funktioniert. *Fauststoß* – h20Pohlow

0

Diese Ausnahme wird ausgelöst, weil Sie versuchen, den Modulo-Arithmetikoperator '%' für eine Nicht-Ganzzahl zu verwenden. Sehen Sie diese Frage: Why does modulus division (%) only work with integers?

Versuchen Sie folgendes:

double large_trays = attendees/7; 

int large_trays_rounded = (int)large_trays; 

int medium_trays = large_trays_rounded % 3; 

int small_trays = medium_trays % 1;