Petite question char C++

kribac Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour a ts et a tte,

ou est le problem ici ? je suis débutant
comment on fé l'appel a une fonction qui a char comme paraméthre ? on mé & ou * ??? aidé mw SVPPP



typedef struct polynome { char a;
struct polynome * sv;
}pol;

typedef pol * liste;


void ajouter(liste*l,char v) {
liste p; p=*l;
liste nouveau=(liste)malloc(sizeof(pol));
nouveau->a=v;
nouveau->sv=NULL;
if(*l==NULL)*l=nouveau;
else { while(p->sv!=NULL) p=p->sv;
p->sv=nouveau;
}
}



int main (){
int n,x,i,choix;
char v;
liste pile=NULL;

printf("\nCombien d'element contient le polynome : ");
scanf("%d",&n);
printf("\n");

for(i=0;i<n;i++) {
printf("Valeur=");
scanf("%s",v);
ajouter(&pile,v); // il se block ici d'aprés ce que j'ai testé
printf("say");
}
}
A voir également:

5 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Le problème c'est que v n'a pas de valeur, tu dois faire scanf("%c\n",&v);
La confiance n'exclut pas le contrôle
0
kribac Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   10
 
merci KX pour votre réponse, j lé correcté mé ça marche pas aussi ya 1 autre problem j pense ben voila mon programme


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int i;
typedef struct myprojet { char a;
struct polynome * sv;
}pol;

typedef pol * liste;

//************** fonction ajouter structure a ma chaine ***************

void ajouter(liste*l,char v) {
liste p; p=*l;
liste nouveau=(liste)malloc(sizeof(pol));
nouveau->a=v;
nouveau->sv=NULL;
if(*l==NULL)*l=nouveau;
else { while(p->sv!=NULL) p=p->sv;
p->sv=nouveau;
}
}

//******************* fonction afficher ma chaine *******************

void afficher(liste l)
{
liste p=l;



while(p!=NULL){
printf("%c ",p->a);
p=p->sv;
}
printf("\n");

}

//**************************** main***** *******************

int main (){
int n,x,i,choix;
char v;
liste pile=NULL;

printf("\nCombien de chaine : ");
scanf("%d",&n);
printf("\n");

for(i=0;i<n;i++) {
printf("Valeur=");
scanf("%c",&v);
ajouter(&pile,v); // ici que j'ai le prob comment j'appel ?
printf("il a entre ici");
}
afficher(pile);
system("PAUSE");
return 0;
}



Merci bqq
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tu as défini liste comme étant *pol, tu as déjà un pointeur, ça ne sert donc à rien de passer en paramètre liste* à ajouter, liste suffit, du coup, tu auras ajouter(pile,v), mais il te faudra modifier ajouter...
0
kribac Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   10
 
merci bq ta raison mé ça marche pa aussi j c pa il é ou l prob :( pouvez vs m'aidé SVP
0

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

Posez votre question
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Plusieurs problèmes :

Ton type récursif doit s'appeller polynome ou myprojet à toi de choisir, mais pas les deux en même temps !

De plus dans ton main, tu envoie liste pile = NULL comme paramètre de la fonction ajouter, il faut que tu initialises pile en mémoire pour pouvoir t'en servir !

Enfin, rajoute \n à ton scanf : scanf("%c\n",&v);
La confiance n'exclut pas le contrôle
0