Prière de m'aider à résoudre ce problème
Résolu
hanaelham
Messages postés
4
Statut
Membre
-
hanaelham Messages postés 4 Statut Membre -
hanaelham Messages postés 4 Statut Membre -
Bonjour,
je travaille sur cet exercice :
écrire une fonction subd en C qui comporte 2 argument a et b et une fonction f permet de générer la subdivision régulière (xi) i=0,..,n et la suite (yi)i=0,....,n tq yi=f(xi).
j'ai procédé comme suit :
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 10
float f(float x){
return pow(x,2)+sin(x);
}
void subd(float f,float a,float b){
float f(float x);
float X[N],Y[N];
int i;
float h;
h=(b-a)/10.;
for(i=0;i<N;i++){
X[i]=a+i*h;
printf("x[i] : %f\n",X[i]);
}
for(i=0;i<N;i++){
Y[i]=f(X[i]);
printf("y[i] : %f\n",Y[i]);
}
}
main(){
void subd(float f,float a,float b);
float a=1;
float b=2;
subd(f,a,b);
system("pause");
}
mais lorsque je compile ,il provoque l'erreur suivante :
'f' redeclared as different kind of symbol
previous definition of 'f' was here
incompatible type for argument 1 of 'subd'
je travaille sur cet exercice :
écrire une fonction subd en C qui comporte 2 argument a et b et une fonction f permet de générer la subdivision régulière (xi) i=0,..,n et la suite (yi)i=0,....,n tq yi=f(xi).
j'ai procédé comme suit :
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 10
float f(float x){
return pow(x,2)+sin(x);
}
void subd(float f,float a,float b){
float f(float x);
float X[N],Y[N];
int i;
float h;
h=(b-a)/10.;
for(i=0;i<N;i++){
X[i]=a+i*h;
printf("x[i] : %f\n",X[i]);
}
for(i=0;i<N;i++){
Y[i]=f(X[i]);
printf("y[i] : %f\n",Y[i]);
}
}
main(){
void subd(float f,float a,float b);
float a=1;
float b=2;
subd(f,a,b);
system("pause");
}
mais lorsque je compile ,il provoque l'erreur suivante :
'f' redeclared as different kind of symbol
previous definition of 'f' was here
incompatible type for argument 1 of 'subd'
2 réponses
-
... void subd(float f,float a,float b){
float f(float x); ...
tu redeclares la fonction une deuxieme fois dans la deuxieme fonction ...
Evites de l'appeler avec une seule lettre ...
De plus Float f est aussi un parametre de ta 2 eme fonction ..
Ca se marche sur les pieds..
Il peut penser que tu rapelles la fonction lorsque tu lances la 2 eme fonctions ... -
Je vous remercie pour votre aide et l'intérêt que vous portez..
amicalement