Nur annahme von positiven Zahlen

Due19

Grünschnabel
Hallo ich hab gerade in der Schule mit Programmieren in C++ angefangen.
Nun habe ich folgenes Problem :

Ich habe dieses Programm hier geschrieben (es dient zur berechnung von Umfang und Fläche eines Kreises bei gegebenem Radius):

#include <iostream>
#include <string>
using namespace std;


int main()

{
//Deklination


float Fläche;
float Umfang;
float radius;
float Pi;

// Deffinition
cout<< "Bitte geben sie einen Radius in cm ein!"<<endl;

cin>> radius;



Umfang = radius* 2* 3.14;
Fläche = radius*radius * 3.14;

cout << "Flaeche=" << Fläche << "cm^2" << endl;
cout << "Umfang=" << Umfang << "cm" << endl;

system("Pause");
return 0;
}


nun möchte aber unser Lehrer das man nur positive Zahlen eingeben kann :mad: da das Programm im Moment auch noch Buchstaben berechnet (und ich hab noch keinen Radius gesehen der ,,Z" lang ist :D
Und ich hab keinen Plan wie ich das machen soll.:confused:

Könnte mir da mal bitte jemand helfen
Danke schonmal im vorraus!
 
Vielen dank für die schnelle Antwort,
aber wenn ich die Sachen eingebe ändert sich nichts am Programm:confused: ,
genauso wenig wenn ich die Bedingung Wenn...,dann.. eingebe passiert auch nichts.

Könnte das vllt mal jemand in den Code oben einfügen (so das es gehen müsste)
und dann hier poasten?
Wär echt lieb :)
 
Hallo,

Code:
#include <iostream>
#include <string>
using namespace std;


int main()

{
//Deklination


float Fläche;
float Umfang;
float radius;
float Pi;

// Deffinition
cout<< "Bitte geben sie einen Radius in cm ein!"<<endl;
cin>> radius;

if(radius > 0)
{

Umfang = radius* 2* 3.14;
Fläche = radius*radius * 3.14;

cout << "Flaeche=" << Fläche << "cm^2" << endl;
cout << "Umfang=" << Umfang << "cm" << endl;
}
else
{
cout<< "Radius darf nicht negativ sein!\n"<<endl;

}

system("Pause");
return 0;
}

Grüße
R.
 
Hi.
Code:
float radius;
float Pi;

// Deffinition
cout<< "Bitte geben sie einen Radius in cm ein!"<<endl;
cin>> radius;

if(radius > 0)
{
}
Das funktioniert auch nicht falls man ungültige Werte eingibt. Man muss erstmal überprüfen ob überhaupt ein Wert eingelesen werden konnte!
C++:
if (cin >> radius) { // Einlesen und Prüfen ob erfolgreich
  if (radius > 0) { // radius positiv?
    ...
  } else { // radius <= 0
    ...
  }
} else { // Eingabefehler
  cerr << "Es wurde keine gültige Gleitkommazahl (float) eingegeben." << endl;
}
Gruß
 
Hey vielen Dank es funktioniert jetzt.:)

Ps: Dies ist mal ein Forum wo man wirklich Hilfe bekommt wenn man sie braucht ;)
 
Zurück