Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] la place de la variable est en cause

Sujet résolu
    6 décembre 2005 à 21:00:31

    Alors voilà, j'ai un petit problème et je me dis bien que quelqu'un içi pourra m'aider.
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
      long nombre;
      long nombre_au_carre = nombre * nombre;
      printf("veuillez indiquez le nombre à mettre au carre");
      scanf("%ld", nombre);
      system("PAUSE");     
      printf("votre nombre au carre est %ld.", nombre_au_carre);
      system("PAUSE");
      return 0;
    }


    Alors quand j'utilise ce code la, la réponse me donne toujours quatre ... allez comprendre pourquoi bien que je pense que se soit à cause de la mémoire ou quelque chose comme ça :p

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

    int main(int argc, char *argv[])
    {
      long nombre;
      printf("veuillez indiquez le nombre a mettre au carre : \n");
      scanf("%ld", &nombre);
      long nombre_au_carre = nombre * nombre;       
      printf("votre nombre au carre est %ld.", nombre_au_carre);
      system("PAUSE");
      return 0;
    }


    Alors que quand j'utilise ce code ci, et bah il me met le bon résultat, je ne comprend donc pas pourquoi est ce que ça ne marche que dans l'un des deux cas
    merci
    toto
    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2005 à 21:07:12

      dans le premier cas tu n'as pas initialisé ta variable nombre avant le calcul, alors que dans le deuxième tu calcul après l'avoir initialisé (par le biais de scanf).
      Donc ça peux avoir n'importe quoi comme valeur, dont 2.

      PS: un system("pause"); est déjà assez laid, mais alors deux dans le même code entre un phrase à affiché c'est mesquin, inutile, moche et chiant (pour l'utilisateur).
      • Partager sur Facebook
      • Partager sur Twitter
        6 décembre 2005 à 21:20:47

        essaie plutôt ça :

        /*tout le blabla*/

        int a;
        int a_o_carre;
        printf("entre le nombre");
        scanf("%ld", a);
        a_o_carre=a*a;
        printf("%ld", a_o_carre);

        /*tout le blabla*/


        A bientot
        • Partager sur Facebook
        • Partager sur Twitter
          6 décembre 2005 à 22:14:53

          D'accord, je crois avoir compris en fait pouruqoi, je vous remercie tout les deux.
          Ensutie, euh, oui je sais pour les system pause, c'est pour ça que j'en ai que mis un pour le deuxième :p
          • Partager sur Facebook
          • Partager sur Twitter

          [C] la place de la variable est en cause

          × 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