Fonctions simples en C aidez moi svp.....
Résolu/Fermé
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
-
19 mai 2008 à 15:35
micka1988 Messages postés 20 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 19 mai 2008 - 19 mai 2008 à 18:26
micka1988 Messages postés 20 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 19 mai 2008 - 19 mai 2008 à 18:26
A voir également:
- Fonctions simples en C aidez moi svp.....
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Fonction write c ✓ - Forum C
- Fonction puissance en c ✓ - Forum C
- Mise en forme conditionnelle en fonction d'une autre cellule ✓ - Forum Excel
- Excel remplir une cellule en fonction d'une autre ✓ - Forum Excel
10 réponses
int i;
for(i=0;t;i++)
{
if(T(i)=X)
{S=1;
}
else
{S=0;
}
} // fin du for
Lexique : i : variable interne
T : nom de ton tableau
S variable de sortie qui vaut 0 ou 1
for(i=0;t;i++)
{
if(T(i)=X)
{S=1;
}
else
{S=0;
}
} // fin du for
Lexique : i : variable interne
T : nom de ton tableau
S variable de sortie qui vaut 0 ou 1
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 15:51
19 mai 2008 à 15:51
il me semble que c'est une fonction itérative parceque d'aprés ce que je sais une fonction recursive c'est une fonction qui s'appelle elle meme.... en tout cas meci pour ton aide!
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 16:05
19 mai 2008 à 16:05
ca ne marche pas plusieurs messages d'erreur....
Au fait que signifie if(S<>0)
{S=1
}
??
Au fait que signifie if(S<>0)
{S=1
}
??
Voici une méthode itérative :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int T[5] = {15, 20, 10, 5, 2};
int i, X;
X = 25;
for(i=0; i < 5; i++){
if(T[i] == X)
return 1;
}
return 0;
}
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 16:18
19 mai 2008 à 16:18
merci beaucoup pour ton aide mais j'ai essayé de compiler ca ne fonctionne pas non plus...
Aussi il me semble que je dois faire ce test avec un tableau en général de taille 10 maximale mais pas avec des entiers que j'entre moi même.....
Merci pour votre aide!!!!!
Aussi il me semble que je dois faire ce test avec un tableau en général de taille 10 maximale mais pas avec des entiers que j'entre moi même.....
Merci pour votre aide!!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
435
19 mai 2008 à 16:19
19 mai 2008 à 16:19
en iterative :
int fonction(int *tab, int taille, int x)
{
int i;
for(i=0;i<taille;i++)
if(tab[i]==x)
return 1;
return 0;
}en recursive :
int fonction(int *tab, int taille, int x)
{
if(taille<0) return 0;
if(tab[taille]==x) return 1;
else fonction(tab,taille-1,x);
}
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 16:24
19 mai 2008 à 16:24
merci myope ca ma l'air correcte mais j'essaie de l'executer et ca m'affiche des erreurs....
qu'est ce que je dois rajouter pour qu'au compilateur ca passe?
seulement #include.............. ?
qu'est ce que je dois rajouter pour qu'au compilateur ca passe?
seulement #include.............. ?
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
435
>
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 17:07
19 mai 2008 à 17:07
eh ben il te restait juste a faire le main c'est pas tres dur...
#include <stdio.h>
#include <stdlib.h>
int iterative(int *tab,int taille,int x)
{
int i;
for(i=0;i<taille;i++)
if(tab[i]==x)
return 1;
return 0;
}
int recursive(int *tab, int taille, int x)
{
if(taille<0) return 0;
if(tab[taille]==x) return 1;
else return recursive(tab,taille-1,x);
}
int main()
{
int *tab;
int i,x;
tab=(int *) malloc(10*sizeof(int));
printf("entre les dix entiers dans le tableau\n");
for(i=0;i<10;i++) scanf("%d",&tab[i]);
printf("donne un entier a recherche dans le tableau : \n");
scanf("%d",&x);
if(iterative(tab,10,x)==1) printf("l'entier a ete trouve dans le tableau de facon iterative\n");
else printf("l'entier n'a pas ete trouve de facon iterative\n");
if(recursive(tab,10,x)==1) printf("l'entier a ete trouve dans le tableau de facon recursive\n");
else printf("l'entier n'a pas ete trouve de facon recursive\n");
}
Voilà les 2 solutions qui fonctionnent bien sous Dev-Cpp :
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
int fonctionIterative(int T[], int taille, int X){
int i;
for(i=0; i < taille; i++){
if(T[i] == X)
return TRUE;
}
return FALSE;
}
int fonctionRecursive(int T[], int taille, int X){
if(taille<0) return FALSE;
else {
if(T[taille] == X) return TRUE;
else return fonctionRecursive(T, taille - 1, X);
}
}
int main(int argc, char *argv[])
{
int T[5] = {15, 20, 10, 5, 2};
printf("10 est une valeur dans le tableau ? : %d \n", fonctionIterative(T, 5, 10));
printf("25 est une valeur dans le tableau ? : %d \n", fonctionIterative(T, 5, 25));
printf("10 est une valeur dans le tableau ? : %d \n", fonctionRecursive(T, 5, 10));
printf("25 est une valeur dans le tableau ? : %d \n", fonctionRecursive(T, 5, 25));
}A toi de les adapter à ton besoin
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 17:33
19 mai 2008 à 17:33
merci de votre aide c'est vraiment sympa....
mais pour les utiliser est ce que je dois ecrire ce code en entier ou bien séparer les 2 fonctions.....
Je sais que ca doit paraitre stupide mais j'ai vraiment du mal et lorque je compile tout le code ca ne marche pas....
merci !
mais pour les utiliser est ce que je dois ecrire ce code en entier ou bien séparer les 2 fonctions.....
Je sais que ca doit paraitre stupide mais j'ai vraiment du mal et lorque je compile tout le code ca ne marche pas....
merci !
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
435
>
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 17:37
19 mai 2008 à 17:37
je sais pas comment tu fais ton compte il suffit de faire copier coller...
que ce soit le code de =[Cvrd]= Tassin ou le mien il marche bien j'ai testé les deux donc a toi de choisir celui que tu prefere
que ce soit le code de =[Cvrd]= Tassin ou le mien il marche bien j'ai testé les deux donc a toi de choisir celui que tu prefere
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
>
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
19 mai 2008 à 17:42
19 mai 2008 à 17:42
je sais pas perso je teste sur Dev-C/C++ celui de tassin ne s'execute pas par contre le tien demande d'entrer les nombres puis l'entier a tester masi ne retourne pas de resultat..... il se ferme
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
>
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
19 mai 2008 à 17:42
19 mai 2008 à 17:42
je sais pas perso je teste sur Dev-C/C++ celui de tassin ne s'execute pas par contre le tien demande d'entrer les nombres puis l'entier a tester masi ne retourne pas de resultat..... il se ferme
Pourquoi le mien ne s'exécute pas ??
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 17:45
19 mai 2008 à 17:45
je ne sais pas ya pas de message d'erreur mais il ne se lance pas.....
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
>
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 17:51
19 mai 2008 à 17:51
les programmmes marchent lorsque vous testez??
peut etre que le compilateru que j'utilise est mauvais....
peut etre que le compilateru que j'utilise est mauvais....
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
>
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 17:51
19 mai 2008 à 17:51
merci de votre aide précieuse!
Bonjour,
je ne suis pas sûr que ça soit ça le problème mais essayes avec un:
system("pause");
à la fin
en le mettant juste avant l'accolade de fin.
je ne suis pas sûr que ça soit ça le problème mais essayes avec un:
system("pause");
à la fin
en le mettant juste avant l'accolade de fin.
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 18:05
19 mai 2008 à 18:05
yesssss maintenant celui de mype fonctionne bien merci énormément!!! celui e tassin s'éxécute mais bugg.... en tout cas merci a tous c gentil de m'avoir aiderr!!!!
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
435
19 mai 2008 à 18:07
19 mai 2008 à 18:07
pour moi les deux marche mais je suis sous linux...
comme la dit humi rajoute a la fin du main()
comme la dit humi rajoute a la fin du main()
system("pause");
micka1988
Messages postés
20
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
19 mai 2008
19 mai 2008 à 18:26
19 mai 2008 à 18:26
c'est OK ca fonctionne..... la solution est donc:
#include <stdio.h>
#include <stdlib.h>
int iterative(int *tab,int taille,int x)
{
int i;
for(i=0;i<taille;i++)
if(tab[i]==x)
return 1;
return 0;
}
int recursive(int *tab, int taille, int x)
{
if(taille<0) return 0;
if(tab[taille]==x) return 1;
else return recursive(tab,taille-1,x);
}
int main()
{
int *tab;
int i,x;
tab=(int *) malloc(10*sizeof(int));
printf("entre les dix entiers dans le tableau\n");
for(i=0;i<10;i++) scanf("%d",&tab[i]);
printf("donne un entier a recherche dans le tableau : \n");
scanf("%d",&x);
if(iterative(tab,10,x)==1) printf("l'entier a ete trouve dans le tableau de facon iterative\n");
else printf("l'entier n'a pas ete trouve de facon iterative\n");
if(recursive(tab,10,x)==1) printf("l'entier a ete trouve dans le tableau de facon recursive\n");
else printf("l'entier n'a pas ete trouve de facon recursive\n");
system("pause");
}
#include <stdio.h>
#include <stdlib.h>
int iterative(int *tab,int taille,int x)
{
int i;
for(i=0;i<taille;i++)
if(tab[i]==x)
return 1;
return 0;
}
int recursive(int *tab, int taille, int x)
{
if(taille<0) return 0;
if(tab[taille]==x) return 1;
else return recursive(tab,taille-1,x);
}
int main()
{
int *tab;
int i,x;
tab=(int *) malloc(10*sizeof(int));
printf("entre les dix entiers dans le tableau\n");
for(i=0;i<10;i++) scanf("%d",&tab[i]);
printf("donne un entier a recherche dans le tableau : \n");
scanf("%d",&x);
if(iterative(tab,10,x)==1) printf("l'entier a ete trouve dans le tableau de facon iterative\n");
else printf("l'entier n'a pas ete trouve de facon iterative\n");
if(recursive(tab,10,x)==1) printf("l'entier a ete trouve dans le tableau de facon recursive\n");
else printf("l'entier n'a pas ete trouve de facon recursive\n");
system("pause");
}
19 mai 2008 à 15:41
Arrange le un peu
19 mai 2008 à 15:45
sinon ca serait une fonction itérative ou bien récursive?
19 mai 2008 à 15:47
Je ne sais même pas ce que ca veux dire.
J'attendrais donc l'explication de quelqu'un d'autre autant que toi
19 mai 2008 à 15:45
init S=0;
for(i=0;t;i++)
{
if(T(i)=X)
{S=S+1;
}
else
{S=S;
}
} // fin du for
if(S<>0)
{S=1
}
Dzl ce que j'ai mis ca ne marche pas
Essaye plutot ca.
19 mai 2008 à 15:53
for(i=0;i<t;i++)
le petit t étant la taille de ton tableau.
Crée en un par
int T(t); //je crois
Bon desolé pour le manque d'assurance, mais ca fait longtemps que je n'en est aps fais et maintenant je travaille en VB, ca change un peu toutes les fonctions.
Bon courrage pour me traduire