Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Modulo-Operation

Arno67 / 3 Antworten / Flachansicht Nickles

Hallo,
bekomme untenstehendes Programm nicht kompiliert. Habe Probleme mit der Modulo-Operation. Der Compiler gibt einen Fehler, wegen der Datentypen aus. Bin gerade am Anfang meiner Programmier-versuche. Bin für jede Hilfe dankbar.
Gruß Arno


#include <stdio.h>


void main (void)


{



float gesamt = 0, eingabe = 0;


char operation;




printf("Anfangszahl eingeben: ");


scanf("%f", &eingabe);


gesamt = eingabe;


printf("= %5.6f", gesamt);


do


{


switch (operation)


{


case '+':


scanf("%f", &eingabe);


gesamt = gesamt + eingabe;


printf("= %5.6f", gesamt);


break;


case '-':


scanf("%f", &eingabe);


gesamt = gesamt - eingabe;


printf("= %5.6f", gesamt);


break;


case '*':


scanf("%f", &eingabe);


gesamt = gesamt * eingabe;


printf("= %5.6f", gesamt);


break;


case '/':


scanf("%f", &eingabe);


gesamt = gesamt / eingabe;


printf("= %5.6f", gesamt);


break;


case '%':


scanf("%f", &eingabe);


gesamt = gesamt % eingabe;


printf("= %5.6f", gesamt);


break;


}


}


while ((operation = getchar()) != '=');


}

bei Antwort benachrichtigen
mr.escape Arno67 „Modulo-Operation“
Optionen

Modulo mit "%" als operator ist eine ganzzahl operation. Für gleitkomma zahlen steht fmod zur verfügung:
double fmod( double x, double y );
The fmod function calculates the floating-point remainder f of x / y such that x = i * y + f, where i is an integer, f has the same sign as x, and the absolute value of f is less than the absolute value of y.

Ausserdem ist
#include <math.h>
erforderlich.

Die geänderte fassung würde so aussehen:
gesamt = (float)fmod(gesamt, eingabe);

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen