Petit probleme de syntaxe

Résolu/Fermé
tchoubaka Messages postés 61 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 25 mai 2023 - 24 nov. 2009 à 19:12
nobie-cs Messages postés 155 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 15 mai 2010 - 24 nov. 2009 à 23:07
Bonjour les developeurs, je vient a vous parce que j'ai un probleme un peu grave. en fait mon programme ci-dessous fonctionne a merveille. l'enonce est la suivante: "ecrire un programme qui echange deux entiers saisis. afficher les entiers avant et apres l'echange" mais le hic c'est que ca n'affiche pas les valeurs apres l'echange. si quelqu'un peut m'aider ca me ferais vraiment plaisir.
Au fait je travaille sur les macros et le pointeurs raison pour laquelle mon programme paraitra bizarre au yeux de certaines personnes.


                
/************************************ librairie standard *******************************/
#include <cstdlib>
#include <iostream>
/************************************* macro *******************************************/
#define donnee() a=0; b=0; c=0;\
                 printf("entrer une valeur entiere: ");\
                 scanf("%ld", &a);\
                 printf("entrer une seconde valeur entiere: ");\
                 scanf("%ld", &b);\
                 printf("les valeurs avant l'echange sont\n  a=%ld   b=%ld\n", a,b);
#define retour() printf("les valeurs apres l'echange sont:\n    a=%ld      b=%ld\n", a,b);\
                 system("PAUSE"); \
                 return EXIT_SUCCESS;   

/********************************** prototype***************************************/                          
void echange(long *n1, long *n2);


/*****************************variables globales*********************************/
long a, b, c;


/****************************** programme principal**********************************/
int main(int argc, char *argv[])
{    
     donnee()     /////////////////////////////////////////titre de la premiere macro
    echange(&a,&b);   /////////////////////////////// fonction
    retour()       //////////////////////////////////////////titre de la deuxieme macro
}

/******************************fonction ou procedure********************************/
void echange(long *n1, long *n2)
{ 
     *n1=c;
     *n2=*n1;
     c=*n2;
}

 

1 réponse

nobie-cs Messages postés 155 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 15 mai 2010 17
24 nov. 2009 à 23:07
ta mal écrit la fonction void echange(long *n1, long *n2)

void echange(long *n1, long *n2)
{ 
int c;
      c=*n2;
     *n2=*n1;
     *n1=c;   
}

0