Appel d'une fonction

tenohthree Messages postés 55 Statut Membre -  
loupius Messages postés 789 Statut Membre -
Bonjour,
comment je peut saisir un entier different de -1 non nul et de retourner cet entier. la fonction doit retourner 0 si l'entier saisie est -1.comment je peut afficher une liste qui se termine par -1.
voila mon programme qui toujours ne marche pas. veuiller corriger les erreurs svp.
#include<stdio.h>

/********saisir************/
int saisie(int a)
{
if(a==-1)
return 0;
else
if(a!=0)
return(a);

}
void main()
{
int i,a,p;
for(i=1;i!=-1;i++)
{printf("a=");
scanf("%d",&a);
printf("\n");}
p=saisie(a);

}

merci d'avance pour votre aide.

3 réponses

nobie-cs
 
ne jamais fait plus d'une seul return dans une fonction c'est mocheeeee

j'ai pas bien compris l'exercice mais
/********saisir************/
int saisie(int a)
{
int nb;
if(a==-1)
nb=0;
else
nb=a;
return nb;
}

je croit sa va marche

NoBiE
0
tenohthree Messages postés 55 Statut Membre
 
j'ai corrigé le programme et la compilation a terminé avec succes mais le je peut pas faire "run" pk?

voila le petit programme :

#include<stdio.h>

/********saisir************/
int saisie(int a)
{
int nb;
if(a==-1)
nb=0;
else
nb=a;
return nb;
}

 void main()
{
 int i,a,p;
 do
 {printf("a=");
 scanf("%d",&a);
 printf("\n");
 }while(a!=-1);

 p=saisie(a);
 printf("%d",&p);
}
0
loupius Messages postés 789 Statut Membre 148
 
Il y a un tout petit peu plus simple:
int saisie(int a)
{
  if (a == -1)
    a = 0;
  return a;
}
Ce qui en fait une fonction si simple qu'on peut se poser la question: ne serait-il pas plus simple de faire le test directement au lieu d'appeler la fonction ?
Bonne continuation.
0
loupius Messages postés 789 Statut Membre 148 > loupius Messages postés 789 Statut Membre
 
On peut faire plus simple:
int saisie(int a)
{
  return (a == -1 ? 0 : a);
}
Et toc ;-)
0
nobie-cs
 
j'ai pas bien compris ta question
0