【发布时间】:2015-12-02 00:00:18
【问题描述】:
我有这张代码:
listCh remplir(){
char rep;
listCh l,aux,p;
printf("1-veuillez entrer un element?(n pour quitter)\n");
scanf("%c",&rep);
if(rep=='n')
l=NULL;
else{
l=malloc(sizeof(listCh));
printf("2-Donnez la valeur d element!\n");
scanf("%d",&l->valeur);
p=l;
}
while(rep!='n'){
printf("voulez-vous ajouter un nouveau element de la list? (n pour quitter)\n");
scanf("%c",&rep);
if(rep!='n'){
aux=malloc(sizeof(listCh));
printf("Donnez la valeur d element!\n");
scanf("%d",aux->valeur);
p->suiv=aux;
p=aux;
}
else{
p->suiv=NULL;
}
}
return l;
}
执行时没有错误! 但是,问题是我的程序在“while”循环中转义了第一个“scanf”函数。
我没有找到对此的解释。
我需要一些帮助。
非常感谢:)
【问题讨论】:
-
真的没有错误吗?
listCh l; l=malloc(sizeof(listCh));看起来很奇怪。 -
1)
scanf("%d",&(aux->valeur));(添加 &)检查您的编译器设置。一个好的编译器会警告这一点。 2)scanf("%c",&rep);-->scanf(" %c",&rep);(加空格)