Salut!
J'ai un vieux bug avec scanf()!!!
J'ai tapé un programme, censé me calculer la somme des carrés de N entiers entrés par l'utilisateur:
#include<stdio.h>
int
main(){
int N,i,z;
[/#ff7100](5) char reste;
float x,y;
do{
printf("Entrez un entier N positif ou nul\n" );
(10) z=scanf("%d",&N);
do{
scanf("%c",&reste);
}while (reste !='\n');
(15)
}while ((z==0)||(N<0));
y=0;
(20) if (N==0){
printf("Aucun réel à entrer... Le programme va s'arrêter!\n" );
return 1;
}
(25) for (i=1;i<=N;i++){
printf("Entrez un réel\n" );
scanf("%f",&x);
y=y+x*x;
}
(30)
printf("La somme des carrés des réels entrés est %f\n",y);
return 0;
}
Quand je le compile, si je lui donne un caractere au lieu d'un entier (ligne 9-10) il me redemande un entier! Jusque là, pas de probleme!
Mais si je lui entre un flottant (ou un réel si vous préférez), continue l'execution du programme et me retourne un résultat incohérent!