Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
12.02.12, 12:42
|
#1
|
Anfänger
Registriert seit: Oct 2011
Beiträge: 20
Bedankt: 3
|
C-Programmierung: Modulo in if-Befehlt
Hallo Zusammen
Ich habe eine Frage:
Was ist an diesem Code falsch (erhalte beim kompilieren immer einen Fehler -.-) :
Code:
if(Einwurf / 0.05 == %0)
{
...
}
Der Fehler ist irgendwie beim Modulo... Der Wert "Einwurf" ist richtig deklariert.
EDIT:
Habe etwas falsch verstanden 
Funktioniert jedoch mit dem Code immer noch nicht:
Code:
if (Einwurf % 0.05 == 0)
error: invalid operands to binary % (have 'float' and 'double')|
|
|
|
12.02.12, 13:13
|
#2
|
Erfahrenes Mitglied
Registriert seit: Jul 2010
Beiträge: 481
Bedankt: 236
|
Muss das nicht so?
if(Einwurf % 0.05 == 0)
|
|
|
12.02.12, 13:18
|
#3
|
Anfänger
Registriert seit: Oct 2011
Beiträge: 20
Bedankt: 3
|
Jep, funktioniert aber leider immer noch nicht... Einwurf ist eine float-Variable, sollte doch möglich sein oder?
|
|
|
12.02.12, 13:16
|
#4
|
Newbie
Registriert seit: Dec 2009
Beiträge: 50
Bedankt: 28
|
Zitat:
error: invalid operands to binary % (have 'float' and 'double')|
|
das heißt, dass du das Modulo nicht mit Fließkommazahlen als Operanden aufrufen darfst, probiers mal mit
if ((Einwurf*100)%5 == 0)
|
|
|
12.02.12, 13:21
|
#5
|
Newbie
Registriert seit: Dec 2009
Beiträge: 50
Bedankt: 28
|
Zitat:
Jep, funktioniert aber leider immer noch nicht... Einwurf ist eine float-Variable, sollte doch möglich sein oder?
|
ahh, na dann schon gar nicht 
da musst du 'Einwurf' so erweitern, dass es eine ganze Zahl (Int) wird
|
|
|
12.02.12, 16:23
|
#6
|
Hinter dir!
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
|
Zitat:
Zitat von mrburns
da musst du 'Einwurf' so erweitern, dass es eine ganze Zahl (Int) wird
|
Entweder so, oder du verwendest die Funktion modf.
Code:
#include <stdio.h>
#include <math.h>
int main()
{
double divident = 11, divisor = 5, rest, quotient;
rest = modf(divident / divisor, "ient);
if (rest == 0) {
printf("%f ist ohne Rest durch %f teilbar\n", divident, divisor);
} else {
printf("%f durch %f = %f Rest %f\n", divident, divisor, quotient, rest);
}
return 0;
}
|
|
|
12.02.12, 17:10
|
#7
|
Anfänger
Registriert seit: Oct 2010
Beiträge: 39
Bedankt: 33
|
Schreib mal
Code:
if(Einwurf % 0.05f == 0)
{
...
}
Nebenbei: Ich weiß nicht, ob man Modulo auf Kommazahlen anwenden kann  Glaube bei x % y, muss y immer eine Ganzzahl sein
|
|
|
12.02.12, 19:25
|
#8
|
Ist öfter hier
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
|
Nur mal so: Wenn Du eine Zahl durch 0.05 teilst, heisst das, dass Du sie mit 20 multiplizierst. Jetzt erklär mir mal, wie da ein ganzzahliger Rest rauskommen soll...
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
|
|
|
13.02.12, 20:56
|
#9
|
Anfänger
Registriert seit: Jun 2010
Beiträge: 5
Bedankt: 0
|
kleiner Tipp schreib erstmal was du willst dann kann dir auch wer helfen.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr.
().
|