Warum kommt der Bereich als 0 zurück?
Frage
Hier ist der Code.
int a;
int pi = 3.14;
int area;
int main()
{
cout << "Input the radius of the circle ";
cin >> a;
a *= a *= pi >> area;
cout << "The area is " << area;
}
Lösung
Die Fläche eines Kreises ist pi * r * r deshalb möchten Sie tun wollen;
a = a * a * pi
Ich hoffe, das hilft
, und sie alle müßten Schwimmer sein.
Andere Tipps
Der >>
Operator, wenn sie mit Zahlen verwendet wird, ist Rechtsverschiebung, nicht Zuordnung. Sie wollen so etwas wie
area = a * a * pi;
Update
Sie müssen auch einen Floating-Point-Typen oder Ihre Antwort verwenden, wird nicht das sein, was Sie erwarten.
float a;
float pi = 3.14f;
float area;
Ich habe nicht genug Geduld Ihren seltsamen Code zu entschlüsseln. Wie wäre es nur area = a * a * pi
?
Ihr Code macht keinen Sinn machen.
pi
(und alle Ihre anderen Variablen) müssen doppelt oder Schwimmer sein, ... nicht int. Ein int kann nur eine ganze Zahl enthalten. Und pi
ist offensichtlich nicht integral.
a *= a *= pi >> area;
sollte area = a * a * pi;
>>
ist ein bitshift, nicht eine Zuordnung zu der rechten Seite
*=
ist mehrfach assign und nicht nur vermehren. das heißt, es ist ähnlich wie left=left*right
Ihr Code nicht tut, was ich denke, Sie wollte es tun. Sie vergeben nicht auf Variablen mit >>
; Das ist nur für den Strom-Extraktion (und bitshifting).
Auch a *= a *= pi
wahrscheinlich nicht tun, was Sie denken, es tut.
Auch Sie wollen Gleitkommawerte, nicht int
. Ein "int" pi ist nur 3.
Außerdem sollten Sie die Fehlerüberprüfung auf Ihrem Stream Extraktion haben!
Versuchen Sie:
int main()
{
const float pi = 3.14;
float a;
cout << "Input the radius of the circle ";
if (!(cin >> a)) {
cout << "Invalid radius!";
return 1;
}
float area = (a * a * pi);
cout << "The area is " << area;
}
int pi = 3.14;
Falscher Datentyp. Zuweisen von doppeltem Wert zu int
? Das ist falsch.
Schreiben Sie:
double pi = 3.14;
Und ebenso ändern andere Datentypen zu double
auch.
Weil Sie verwenden int
oder integer, für alle Ihre Variablen. Sie wollen double
s oder sogar float
s verwenden. (double
s sind präziser).
Alle Ihre Variablen werden als int deklariert, die einfach jeden Bruchteil ihm zugeordneten fällt. Um die Arbeit mit Gleitkommazahlen, die Verwendung doppelt statt.
Auch in der Gleichung fast unverständlich. Nicht sicher, was Sie versuchen, es zu tun.