myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

C-Programmierung: Modulo in if-Befehlt

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 12.02.12, 12:42   #1
Colodian
Anfänger
 
Benutzerbild von Colodian
 
Registriert seit: Oct 2011
Beiträge: 20
Bedankt: 3
Colodian ist noch neu hier! | 0 Respekt Punkte
Standard 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')|
Colodian ist offline   Mit Zitat antworten
Ungelesen 12.02.12, 13:13   #2
Thelvan
Erfahrenes Mitglied
 
Registriert seit: Jul 2010
Beiträge: 481
Bedankt: 236
Thelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt Punkte
Standard

Muss das nicht so?
if(Einwurf % 0.05 == 0)
Thelvan ist offline   Mit Zitat antworten
Ungelesen 12.02.12, 13:18   #3
Colodian
Anfänger
 
Benutzerbild von Colodian
 
Registriert seit: Oct 2011
Beiträge: 20
Bedankt: 3
Colodian ist noch neu hier! | 0 Respekt Punkte
Standard

Jep, funktioniert aber leider immer noch nicht... Einwurf ist eine float-Variable, sollte doch möglich sein oder?
Colodian ist offline   Mit Zitat antworten
Ungelesen 12.02.12, 13:16   #4
mrburns
Newbie
 
Registriert seit: Dec 2009
Beiträge: 50
Bedankt: 28
mrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punkte
Standard

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)
mrburns ist offline   Mit Zitat antworten
Ungelesen 12.02.12, 13:21   #5
mrburns
Newbie
 
Registriert seit: Dec 2009
Beiträge: 50
Bedankt: 28
mrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punkte
Standard

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
mrburns ist offline   Mit Zitat antworten
Ungelesen 12.02.12, 16:23   #6
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von mrburns Beitrag anzeigen
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, &quotient); 
    
    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;    
}
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 12.02.12, 17:10   #7
jon.west
Anfänger
 
Registriert seit: Oct 2010
Beiträge: 39
Bedankt: 33
jon.west ist noch neu hier! | 0 Respekt Punkte
Standard

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
jon.west ist offline   Mit Zitat antworten
Ungelesen 12.02.12, 19:25   #8
Epeos
Ist öfter hier
 
Benutzerbild von Epeos
 
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
Epeos ist noch neu hier! | 0 Respekt Punkte
Standard

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)
Epeos ist offline   Mit Zitat antworten
Ungelesen 13.02.12, 20:56   #9
WilliWeasel
Anfänger
 
Registriert seit: Jun 2010
Beiträge: 5
Bedankt: 0
WilliWeasel ist noch neu hier! | 0 Respekt Punkte
Standard

kleiner Tipp schreib erstmal was du willst dann kann dir auch wer helfen.
WilliWeasel ist offline   Mit Zitat antworten
Antwort


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

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr.


Sitemap

().