Langage C problem compilation

Fermé
cslay Messages postés 151 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 janvier 2010 - 25 avril 2009 à 21:44
Pico51 Messages postés 716 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 16 juillet 2019 - 3 mai 2009 à 10:58
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
A voir également:

7 réponses

Pico51 Messages postés 716 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 16 juillet 2019 69
25 avril 2009 à 21:47
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.
0
the F Messages postés 150 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 22 mars 2011 13
25 avril 2009 à 22:27
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 .
0
cslay Messages postés 151 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 janvier 2010 2
26 avril 2009 à 18:38
merci a vous touss
0
belhauss Messages postés 69 Date d'inscription dimanche 24 décembre 2006 Statut Membre Dernière intervention 9 février 2012 3
26 avril 2009 à 18:44
coche l'option résolu :)
0

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)
0
cslay Messages postés 151 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 janvier 2010 2
2 mai 2009 à 22:46
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);
}
0
Pico51 Messages postés 716 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 16 juillet 2019 69
3 mai 2009 à 10:58
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.
0