[c]fonction qui retourne le max

Bonjour,
je veux écrire une fonction qui retourne le max de 3 entiers, voila mon programme,mais ça marche pas

int max3(int,int,int);

int  main(void)
{
   int a,b,c,z;
   scanf("%d",&a);
   scanf("%d",&b);
   scanf("%d",&c);

   z = max3(a,b,c);

   printf("le max est %d",z);
   printf("\n");

   
   return 0;
}

int max3(int a,int b,int c)
{int z;
    if(a>b&&a>c)
       z=a;
    if(b>a&&b>c)
       z=b;
    if(c>a&&c>b)
       z=c;

    return z;
}



4 réponses

  1. Contributeur
    Bonjour,

    Qu'est-ce qui ne marche pas dans ton programme ?
    Pour moi il est correct.
    0
    1. quand j'exécute ya rien affiché .essai stp si ta dev ou turbo
      0
      1. Contributeur
        Ah je pense voir le problème.
        Rajoute : system("PAUSE"); juste avant ton return 0;
        Il te faudra ajouter lle header <stdlib.h>
        Cdlt,
        0
    2. c fait , mais sa change rien :(
      0
      1. Contributeur
        Bizarre car votre programme fonctionne bien.
        Sinon petite question de vérification :
        Lorsque vous exécutez votre programme, trois scanf vont s'exécuter. Mais comme à ce moment vous n'avez mis aucun printf rien ne s'affichera. Avant que votre programme puisse afficher le max via le printf, vous devez tapez trois nombres et valider par la touche "entrée" (mais rien ne sera affiché à l'écran pendant cette étape puisque vous ne l'avez pas demandé au compilateur). Est-ce bien de ce cas que vous parlez ou encore d'un autre ?
        0
    3. Contributeur
      Algorithme plus simple :
      int max3(int a,int b,int c)
      {int z;
          if(a>b&&a>c)
             z=a;
          else if(b>c)
             z=b;
          else
             z=c;
      
          return z;
      }
      
      
      Sinon, comme fiddy, je ne voi pas de problèmes.
      lancer le programme dans une console peut être une bonne idée.
      0