WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 19.10.2003, 02:05   #1
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Standard Wo liegt der Fehler im C++ Code?

Zitat:
#include <iostream.h>


int main() {

double x;

cout<<"Geben Sie eine Zahl ein\n";
cin>>x;

if ((x%1)==0)
cout<<x<<" ist eine ganze Zahl\n";
else
cout<<x<<" ist keine ganze Zahl\n";

}
Also das einfache Prog soll erkennen, ob es sich um eine ganze Zahl handelt oder nicht.
Aber leider kann der Compiler das nicht verarbeiten.
Der % Operator ist der Restklassen Operator.


Fehlermeldung:
"invalid operands `double' and `int' to binary `operator %"

Was mach ich falsch?
Bitte nicht schimpfen, wenn es nur ein blöder Fehler ist.
Groovy ist offline   Mit Zitat antworten
Alt 19.10.2003, 09:54   #2
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Nur so nebenbei, wenn man schon einen Rückgabewert angibt, dann sollte man auch etwas zurückgeben

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 19.10.2003, 10:04   #3
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Standard

sonst "void main void" ....
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten
Alt 19.10.2003, 11:17   #4
rollipolli
Veteran
 
Registriert seit: 12.04.2001
Alter: 43
Beiträge: 330


rollipolli eine Nachricht über ICQ schicken
Standard

..bist du dir sicher, das du % auf double anwenden kannst?!

..ich würd eher sagen, das % den Rest der division zweier Integer-Werte liefert..
rollipolli ist offline   Mit Zitat antworten
Alt 19.10.2003, 11:31   #5
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 19.10.2003, 11:43   #6
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Standard

Hmm wieso kann man double nicht mit modulo anwenden?

@pong
meinst du das mit return 0?
Ich dachte das macht der Compiler automatisch?
Groovy ist offline   Mit Zitat antworten
Alt 19.10.2003, 12:11   #7
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Der Modulo-Operator ist nur fuer Integer-Zahlen definiert, wie man den entsprechenden Unterlagen entnehmen kann.
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 19.10.2003, 12:12   #8
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Standard

Na toll...
Muss mir dann was anderes einfallen lassen.

Trotzdem Danke an Euch!
Groovy ist offline   Mit Zitat antworten
Alt 19.10.2003, 20:51   #9
Stona
Inventar
 
Registriert seit: 28.09.2001
Beiträge: 2.179


Standard

wenn du den wert an einer anderen stelle als double brauchts mach halt einen cast auf int, um den modulo zu verwenden


double x;


if (((int)x%1) == 0)

....
Stona ist offline   Mit Zitat antworten
Alt 21.10.2003, 22:17   #10
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Standard

ich hab's nun anders gelöst...
Auf Modulo hab ich ganz verzichtet und stattdessen hab ich double vom int subtrahiert.
Falls 0 = ganze Zahl, sonst keine Ganze Zahl.

#include <iostream.h>



int main()
{
double a;

cout<<"Geben sie eine Zahl ein";
cin>>a;

if (a- int(a)==0)
cout<<"Ganze Zahl ";
else
cout<<"keine ganze Zahl ";
}
Groovy ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:16 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag