Bon sinon, en dehors de scanf, il y a des problèmes avec ton code :
Citation :
taiste.c:5: warning: return type defaults to `int'
taiste.c: In function `verifentree':
taiste.c:10: warning: left-hand operand of comma expression has no effect
taiste.c: At top level:
taiste.c:19: warning: return type defaults to `int'
taiste.c: In function `main':
taiste.c:30: warning: control reaches end of non-void function
|
Utilise l'option "-Wall" de gcc pour voir ces avertissements.
À moins de savoir vraiment ce que tu fais et d'avoir une très bonne raison pour ça, ce qui n'est pas le cas ici, n'utilise pas de variable globale. C'est mal.
Code :
- verifentree(nbuser,petit,grand){
|
Manquent les types de retour et des arguments.
Par défaut le compilateur assume qu'il s'agit d'entiers (int), mais c'est mal de laisser l'ambiguïté s'installer.
Cette ligne ne fait pas ce que tu crois.
Elle signifie : "retourner i, puis évaluer nbuser" (ce qui n'arrive jamais).
Une fonction ne peut jamais retourner qu'une seule valeur.
Les deux seuls prototypes de main() valides sont :
int main(void)
et
int main(int argc, char **argv)
main() est censé retourner une valeur int, pour indiquer à l'appelant du programme dans quel état est sorti le programme (on assume qu'un code retour à 0 signifie que tout s'est bien passé).
Donc il faut ajouter un return.