Question

Voici le 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;


}
Était-ce utile?

La solution

L'aire d'un cercle est pi * r * r donc vous voudriez faire;

a = a * a * pi

L'espoir qui aide

et ils seraient tous doivent être flotteurs.

Autres conseils

L'opérateur >> lorsqu'il est utilisé avec des nombres est décalage vers la droite, pas l'affectation. Vous voulez quelque chose comme

area = a * a * pi;

Mise à jour

Vous devez également utiliser un type à virgule flottante ou votre réponse ne sera pas ce que vous attendez.

float a;
float pi = 3.14f;
float area;

Je n'ai pas assez de patience pour déchiffrer votre code étrange. Que diriez-vous juste area = a * a * pi?

Votre code ne fait pas de sens.

pi (et toutes vos autres variables) doivent être double ou flottant, ... pas int. Un int ne peut contenir un nombre entier. Et pi est évidemment pas intégrale.

a *= a *= pi >> area; doit être area = a * a * pi;

>> est un bitshift, pas une cession sur le côté droit
*= est multiplier assign et non seulement se multiplient. à-dire qu'il est similaire à left=left*right

Votre code ne fait pas ce que je pense que vous vouliez faire. Vous n'attribuez pas à des variables avec >>; qui est seulement pour l'extraction du flux (et opérateurs de bits).

En outre, a *= a *= pi n'a probablement pas ce que vous pensez.

En outre, vous voulez des valeurs à virgule flottante, non int. est à seulement 3 Une pi "int".

En outre, vous devriez avoir le contrôle d'erreur sur votre extraction de flux!

Essayez:

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;

Mauvais type de données. Attribution valeur double à int? Ce qui ne va pas.

Ecrire ceci:

double pi = 3.14;

De même, modifier d'autres types de données à double ainsi.

Parce que vous utilisez int ou entier, pour toutes vos variables. Vous voulez utiliser doubles ou même floats. (doubles sont plus précis).

Toutes vos variables sont déclarées comme int, qui tombe tout simplement une partie fractionnaire qui lui est assignée. Pour travailler avec des valeurs à virgule flottante, double usage à la place.

En outre, votre équation dans presque incompréhensible. Je ne sais pas ce que vous essayez de faire là-bas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top