WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Wo liegt der Fehler im C++ Code? (http://www.wcm.at/forum/showthread.php?t=112618)

Groovy 19.10.2003 02:05

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. :heul:
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.

pong 19.10.2003 09:54

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

pong

Chrisi99 19.10.2003 10:04

sonst "void main void" ....

rollipolli 19.10.2003 11:17

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

..ich würd eher sagen, das % den Rest der division zweier Integer-Werte liefert..

_m3 19.10.2003 11:31

:ja:

Groovy 19.10.2003 11:43

Hmm wieso kann man double nicht mit modulo anwenden?

@pong
meinst du das mit return 0?
Ich dachte das macht der Compiler automatisch?

_m3 19.10.2003 12:11

Der Modulo-Operator ist nur fuer Integer-Zahlen definiert, wie man den entsprechenden Unterlagen entnehmen kann.

Groovy 19.10.2003 12:12

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

Trotzdem Danke an Euch!

Stona 19.10.2003 20:51

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)

....

Groovy 21.10.2003 22:17

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 ";
}


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:23 Uhr.

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