Un petit problème en c

anassinho13 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde,

En fait à mon passage,j'ai voulu se rappeler un peu de ce langage que j'apprécie d'ailleurs. sinon il d''agit d'un programme qui appel une fonction ou une procédure comme vous voulez parce qu'il est de type void.Cette dernière permet de renvoyer le nombre paire et le nombre impaire parmi les variable que j'ai entré en paramettre de la fonction par l'intermédiaire d'une structure.Le problème c'est que mon programme renvoie tout le temps les valeurs sont paire il passe pas à l'autre condition comme c'etait avant lorsque j'ai testé l'exo le main.
ci-dessous mon code et merci d'avance
#include<stdio.h>
#include<conio.h>
struct donnee
{
int a;
int b;
};
void paire_impaire(donnee)
{
donnee d;
if(d.a%2==0 && d.b%2==0)
printf("a et b sont paire ");
else
if(d.a%2!=0 && d.b%2==0)
printf("a est impaire mais b est paire ");
else if(d.a%2==0 && d.b%2!=0)
printf("a est paire mais b est impaire ");
else if(d.a%2!=0 && d.b%2!=0)
printf("a et b sont tous impaires ");
}
main()
{
donnee d;
int T[20];
printf("entrer la valeur de a : ");
scanf("%d",&d.a);
printf("entrer la valeur de b : ");
scanf("%d",&d.b);
paire_impaire(d);
getch();
}




1 réponse

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
le problème viens de la déclaration de ta fonction :
void paire_impaire(donnee) //ici tu indique une fonction qui prend en paramètre une variable de type donnee, mais tu oublie de lui donné un nom
{
donnee d;ici tu redéfini une NOUVELLE variable d de type donnee qui n'a donc rien a voir avec celle du main. 
En correction, il faut déjà faire ça :
void paire_impaire(donnee d)
{
//donnee d; 
ça devrait suffire
0