J'ai un exo, voici l'énoncé
Ecrire un algorithme appelé cercle qui demande le rayon d'un cercle et affiche son diamètre, sa circonférence et sa surface
Voici mon programme
#include<stdio.h>
#include<conio.h>
const float pi=3.14;
int main()
{
float r,d,c,s;
printf("DONNER LA VALEUR DU RAYON\n");
scanf("%f",&r);
d=2*r;
c=2*pi*r;
s=pi*r*r;
while(r > 0)
{
printf("le diametre du cercle est %f\n",d);
printf("la circonference du cercle est %f\n",c);
printf("la superficie du cercle est %f\n",s);
}
getchar();
return 0;
}
Quand je compile tout marche mais le programme ne s'arrête pas. Je voudrais savoir comment faire.
Oui c'est à cause de while bien sur,mais si je ne me trompe pas on peut l'arrêter ou le délimiter
Autre question:si je fais ceci on me dit y a erreur pourquoi.
printf("le diametre est %f, la circonference est %f,la surface est %f',d,c,s);
Si j exécute la console me demande de donner une valeur mais si je donne la valeur y a pas d'exécution cad pas de résultat
Tu dis
"tant que r>0 fais ceci"
mais dans "ceci" tu ne changes jamais la valeur de r, alors si r ne change pas, c'est sur qu'il restera positif jusqu'à très longtemps...
printf("le diametre est %f, la circonference est %f,la surface est %f',d,c,s);
l'erreur est probablement dûe au fait d'avoir utilisé une apostrophe 'au lieu d'une ".
Tu peux tester ce programme, car je n'ai pas de quoi le tester:
#include <stdio.h>
#include <conio.h>
#include <math.h> /* Ce qui nous permet de récupérer la valeur de PI et qui est notée M_PI dans math.h*/
int main()
{
char Reponse;
float r ;
do {
clrscr() /* Efface l'écran */
printf("Donner la valeur du rayon :\n");
scanf("%f",&r);
printf("Le diamètre du cercle est %f\n", 2*r);
printf("La circonférence du cercle est %f\n", 2*M_PI*r);
printf("La superficie du cercle est %f\n", M_PI*r*r);
/* On demande à l'utilisateur si il souhaite continuer ou quitter */
/* afin de terminer le programme proprement */
printf("Taper (Q) ou (q) pour quitter ou une autre touche pour continuer: ");
Reponse=getch();
} while(Reponse<>'Q' && Reponse<>'Q')
exit(0) /* Afin d'indiquer que le programme s'est terminé normalement.*/
}
•while évalue la condition avant d'exécuter le bloc d'instructions,
•do - while évalue la condition après avoir exécuté le bloc d'instructions. Ainsi le bloc d'instructions est exécuté au moins une fois.
Merci de nous dire si ça marche.
Salut, j'ai compilé mais ça ne marche pas
1er problème détecté c'est cette ligne printf("Donner la valeur du rayon :\n");
Je suis désolé, mais je n'ai pas de compilateur C depuis vingt ans.
Je pense qu'il manque un point virgule après clrscr(), je pense que ça marchera après.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :