Kehrwert berechnen (C++)

Neue Frage »

Auf diesen Beitrag antworten »
hüliet Kehrwert berechnen (C++)

Meine Frage:
Schreiben Sie ein Programm kehrwert, das eine Fließkommazahl von der Standardeingabe erwartet und den Kehrwert der Zahl ausgibt. Überprüfen Sie mit einer if-Anweisung, ob eine gültige Zahl eingegeben wurde.

Meine Ideen:
Ich habs erstmal so gemacht, weiß aber nicht, ob man das so machen kann. Mit der if-Anweisung habe ich Probleme, denn ich weiß nicht genau, wie die Bedingung lauten muss.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
#include <iostream>
using namespace std;

int main() {

double a,b;

cout << "Bitte eine Fließkommazahl eingeben." << endl;

cin >> a;

if(a == (double)a ) {
   b = 1/a;
   cout << "Der Kehrwert der von Ihnen eingegebenen Zahl lautet " << b << "." << endl;
}

else cout << "Sie haben keine Fließkommazahl eingegeben." << endl;

}


Hm... das ist bestimmt nicht korrekt.

Wenn ich zum Beispiel a eingebe, steht dort

"Der Kehrwert ist inf."
 
Auf diesen Beitrag antworten »
eulerscheZahl

Bei Zeichenketten allgemein kommt Unsinn heraus, die abzufangen ist aber etwas aufwendiger.
Aber bei einer Zahl ist es offensichtlich, dass der Kehrwert keinen Sinn macht: 0

code:
1:
if(a == (double)a )

a ist vom Typ double, somit stimmt der Vergleich immer, du hast also geschrieben if(true)
Auf diesen Beitrag antworten »
hüliet

hey

das mit den zeichenketten scheint wohl etwas schwieriger zu sein (und ich glaube nicht, dass wir das machen müssen, denn es ist ein anfängerkurs).

du meinst also ich müsste erstmal nur den Fall abfangen, dass der benutzer die zahl 0 eingegeben hat?
Auf diesen Beitrag antworten »
hüliet

also konkret:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
#include <iostream>
using namespace std;

int main() {

double a,b;

cout << "Bitte eine Fließkommazahl eingeben." << endl;

cin >> a;

if(a != 0 ) {
   b = 1/a;
   cout << "Der Kehrwert der von Ihnen eingegebenen Zahl lautet " << b << "." << endl;
}

else cout << "0 hat keinen Kehrwert." << endl;
 
Auf diesen Beitrag antworten »
Karlito

Hallo,

ich denke man soll einen String einlesen und mit strtof prüfen, ob es sich um eine Fließkommazahl handelt. So kompliziert ist das nicht auch wenn es für einen Anfänger eine kleine Hürde darstellt, da man hier mit Zeigern arbeiten muss. Wurden Zeiger bereits behandelt?

VG,

Karlito
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »