Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction renvoie 2 valeurs Possible?

5 novembre 2006 à 11:02:50

Bonjour!
eh oui je suis matinal aujourdhui! :)
voila en faite je cherche a renvoyer deux valeurs par une fonction .

1 variable incrementée de 1 et un x entré par l'utilisateur avec condition sur x tel que x doit etre compri entre 0 et 7 de tel sorte a ce que si on met un chiffre en dehor de cet intervalle on redemande X
ezt a la fin de la fonction je veux renvoyer le X et la variable avec un +1

merci
voila ce que j'ai fait (c'est faux):


joueur=1

int fonction(int x, int joueur)
                     
{

    printf("Joueur %d : ", joueur);
    while ( x < 0 || x >6 )
        {
            printf("Tapez le numero de colonne : \n");
            scanf( "%d",&x);

        }
        return x, joueur+1;


    }



ou alors je fais une boucle dans ma fonction main() de ce genre en modifiant ma fonction:

int fonction(int x)
                     
{           while ( x < 0 || x >6 )
        {
            printf("Tapez le numero de colonne : \n");
            scanf( "%d",&x);

        }
        return x;








y=1


main()
{
{
    y=1
    printf("Joueur %d : ", y);
    scanf("%d", &x)
    printf("%d \n\n\n", fonction(x));
    x=fonction(x)
    y=y+1

    }
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2006 à 11:05:35

Tu peux très bien en passer une par référence(C++) ou par un pointeur(C/C++), l'autre sera retournée par la fonction. Ou alors passe les 2 en arguments par référence ou pointeur.
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2006 à 11:13:44

Pfouf, première page (en bas, je l'accorde, mais elle est sur la première page), on trouve ce sujet.
Pensez à faire une recherche avant de créer un nouveau topic rougndidjiiii

Relis le chapitre sur les pointeurs qui parle explicitement du retour multiple d'une fonction !
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2006 à 11:16:30

oui oui d'accord mais je propose ce que j'ai fait en plus j'ai pas eu le temps de modifier le topic!
j'ai quand meme proposé un autre truc en faite je fais une fonction mais j'incremente ma variable dans MAIn c'est juste?
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2006 à 11:46:43

Pourquoi tu le fais pas avec les pointeurs comme on te l'as conseillé ? ça te permettrai de ne pas avoir à faire plusieurs incrémentation dans ton main si tu voulais te servir plusieurs fois de ta fonction... Et les pointeurs sont un élément indispensable du C, tu ferais mieux de les manipuler au plus vite.
Sinon, oui à priori ta fonction doit te permettre d'obtenir le résultat recherché.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
5 novembre 2006 à 11:48:50

Sinon crée une structure spéciale qui contiendra les valeur a renvoyer et la fin de la fonction tu fais
return tastruct;
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2006 à 13:10:38

oui merci bcp!
enfaite les pointeurs on a pas ske ct (je crois ptet kon a vu mais j'etait pas concentré sur le cour lol)
enfaite j'ai un giga probleme je t'envoie un PM nico si tu pouvais m'aider je t'envoye mon source code pour l'instant j'ai un giga BUg dans mon prog je t'explike ds le PM si tu veux bien m'aider.
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2006 à 13:14:00

Je ne crois pas qu'on puisse retourner plus de UNE valeur.

Kurapix
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2006 à 13:16:59

Citation : popo_joe

enfaite j'ai un giga probleme je t'envoie un PM nico si tu pouvais m'aider je t'envoye mon source code pour l'instant j'ai un giga BUg dans mon prog je t'explike ds le PM si tu veux bien m'aider.


On pue des pieds ou quoi ?
  • Partager sur Facebook
  • Partager sur Twitter
Music only !
5 novembre 2006 à 13:37:12

non dsl c'est juste kon est bcp a faire la meme chose et c un projet ké noté alors tt mes potes von trouver mon source code et c enc*** vont copier coller!

je t'ai PM ED

edit minirop : mot censuré et fermé pour cause de SMS
  • Partager sur Facebook
  • Partager sur Twitter