Langage C problem compilation
cslay
Messages postés
157
Date d'inscription
Statut
Membre
-
Pico51 Messages postés 846 Statut Membre -
Pico51 Messages postés 846 Statut Membre -
Bonjour,
merci davance
Exo :
Ecrire un programme qui calcul le périmètre (perm) et la surface (surf) d’un cercle de rayon = ray , écrire ensuite une fonction cercle () qui renvoie le périmètre et la surface du même cercle que précédemment. Prendre π=3.14
/*perim-surf*/
#include <stdio.h>;
#include <conio.h>;
#include <math.h>;
int cercle (float ray,float perim,float surf){
float pi=3.14;
perim=2*pi*ray;
surf=pi*ray*ray;
}
void main(){
float r,p,s;
clrscr();
printf("entrez le rayon:");
scanf("%f",&r);
printf("le perimetre = %f \nla surface = %f",cercle (r,p,s));
do{}
while(kbhit()==0);
}
il ne ve pa compiler
merci davance
Exo :
Ecrire un programme qui calcul le périmètre (perm) et la surface (surf) d’un cercle de rayon = ray , écrire ensuite une fonction cercle () qui renvoie le périmètre et la surface du même cercle que précédemment. Prendre π=3.14
/*perim-surf*/
#include <stdio.h>;
#include <conio.h>;
#include <math.h>;
int cercle (float ray,float perim,float surf){
float pi=3.14;
perim=2*pi*ray;
surf=pi*ray*ray;
}
void main(){
float r,p,s;
clrscr();
printf("entrez le rayon:");
scanf("%f",&r);
printf("le perimetre = %f \nla surface = %f",cercle (r,p,s));
do{}
while(kbhit()==0);
}
il ne ve pa compiler
Configuration: Windows XP Firefox 3.0.9
7 réponses
-
Bonjour,
Pas de point virgule après une commande préprocesseur.
Ta fonction cercle est censé renvoyer un int et ne contient pas de return.
Ton printf est totalement faux. Il devrait ressembler à :
printf("p : %f, s : %f", p, s);
C'est un exemple mais c'est pour te dire que c'est complètement faux. -
tout d'abord les fautes visibles :
**il faut faire entrer les variables## ,float perim,float surf## par adresses car les valeurs changent
**les variables P S R doivent etres declares et inisialises separement
** pas besoin de ces instructions##clrscr();##et ## do{} while(kbhit()==0); ##tu peut t'en passer pour le moment . -
-
coche l'option résolu :)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
C est normal que ça compile pas ta bcp d'erreurs:
1- il te faut un return dans ta fonction cercle en plus il faut remplacer int par floot
2- une fonction ne rend qu'une valeur soit périmètre soit surface. sinon il faut que le résultat soit un tableau
3- erreur dans scanf il faut ecrire scanf("per=%f\n surf=%f\n",valeur1,valeur2)
Il te faut programmer deux fonctions
1. floot perimetre(floot r){return 2*3.4*r}
2. floot surface(floot s) -
merci a vous tous
es ce que c comme ca que je doit faire ?
/*perim-surf*/
#include <stdio.h>;
#include <conio.h>;
#include <math.h>;
int cercle (float perim,float surf){
float ray;
perim=2*3,14*ray;
surf=3,14*ray*ray;
}
void main()
{
float r,p,s;
clrscr();
printf("entrez le rayon:");
scanf("%f",&r);
printf("%f"cercle(p,s));
do{}
while(kbhit()==0);
} -
Non, tu fais n'importe quoi là.
Tout d'abord, oublie la bibliothèque conio.h qui ne te sert à rien et les fonctions clrscr et kbhit.
Tout d'abord, tu veux récupérer le rayon :
printf("entrez le rayon:");
scanf("%f",&r);
D'accord, pas de problème.
Mais ensuite, tu veux, dans la fonction cercle, récupérer les valeurs de p et s. Pour cela, il faut que ta fonction cercle prenne en paramètres des float* et aussi la valeur de r et ne renvoie rien :
void cercle (float *p, float *s, float r)
Ensuite, dans la fonction, tu modifies les valeurs dont les pointeurs font références :
*p = 2 * 3.14 * r; (exemple).
Enfin, dans le main, tu affiches les résultats :
printf("Périmètre : %f\n", p);
Je n'ai pas écrit tout le code, à toi de le compléter.