Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de resolution d'un exercice

Sujet résolu
    21 novembre 2007 à 17:06:47

    bonsoir, j'ai un petit soucis avec un exo de programmation.
    C'est un petit exo oùl'on doit faire une fonction tarif qui calcule deux tarifs differents pour la location de voiture.
    Mon probleme c'est que lors de la compilation il me marque multiple declaration for'u' et je ne com^prend pas pourquoi.
    Je vous envoie mon code et si vous pouvez m'aider.
    Merci d'avance.


    # include <stdio.h>
    #include <stdlib.h>

    void tarif(float u,float v);
    void main()
    {
    float km,j,tar1;
    printf("combien de km comptez vous faire?");
    scanf("%f",&km);
    printf("combien de jour voulez vous louer?");
    scanf("%f",&j);

    tarif(j,km);

    getchar();getchar();
    }


    void tarif(float u, float v)
    {
    float u,v;
    float T1,T2;
    T1=40,0*u + 0,20*(v-200,0);
    T2=80,0*u + 0,05*(v-300,0);
    printf("le tarif1 est %d et le tarif2 est %d",T1,T2);

    }
    • Partager sur Facebook
    • Partager sur Twitter
      21 novembre 2007 à 17:18:43

      Tu passe en argument dans ta fonction tarif u et v, et tu déclare 2 variables du même nom juste après, donc le compilateur ne sait lesquelles utiliser.
      • Partager sur Facebook
      • Partager sur Twitter
        21 novembre 2007 à 17:19:44

        Balises :(

        Tu ne peux pas déclarer dans une fonctions des variables ayant même type et même indentificateur que les arguments.
        Si tu tiens à déclarer les arguments de la fonction dans son corps, il me semble que c'est possible en C original mais bonjour le controle des type lors de l'appel :o


        EDIT : grilled
        • Partager sur Facebook
        • Partager sur Twitter
          21 novembre 2007 à 17:30:59

          Déja là c'est plus lisible,(utilise les balises codes), et normallement sa fonctionne.

          1. #include <stdio.h>
          2. #include <stdlib.h>
          3. void tarif(float u,float v);
          4. int main(void)
          5. {
          6.     float km,j,tar1;
          7.     printf("combien de km comptez vous faire?");
          8.     scanf("%f",&km);
          9.     printf("combien de jour voulez vous louer?");
          10.     scanf("%f",&j);
          11.     tarif(j,km);
          12.     getchar();getchar();
          13.     return 0;
          14. }
          15. void tarif(float u, float v)
          16. {
          17.     float T1,T2;
          18.     T1=40,0*u + 0,20*(v-200,0);
          19.     T2=80,0*u + 0,05*(v-300,0);
          20.     printf("le tarif1 est %d et le tarif2 est %d",T1,T2);
          21. }


          Sinon, tu n'a pas a déclarer une seconde fois tes variables dans la fonction.
          Et tu as oublier le return 0 à la fin, (même si sa n'avait pas d'effet sur ton problème.
          • Partager sur Facebook
          • Partager sur Twitter
            21 novembre 2007 à 18:22:55

            désolé j'arrive pas a comprendre ce qui ne vas pas
            • Partager sur Facebook
            • Partager sur Twitter

            probleme de resolution d'un exercice

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown