Langage C problem compilation

cslay Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   -  
Pico51 Messages postés 716 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   69
 
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   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention   2
 
merci a vous touss
0
belhauss Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   3
 
coche l'option résolu :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
idakkadi
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   69
 
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