Programmation c (variable)

Bonjour,

je voudrais savoir , en programmation c , comment faire pour par exemple si j'écrit :

a= x* (x+2)
printf("a= %lf",a);

je voudrais que le programme me donne comme réponse : a=x^2+2
j'ai essayer cela , mais ça ne marche pas :

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

int main()
{
double a,x;
a=x*(x+2);
printf("a= %lf",a);
system("pause");
}
Configuration: Windows XP
Firefox 2.0.0.13

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. salut,
    je comprends pas pourquoi tu fais
    a=x*(x+2); 

    si tu veux x³+2

    je mettrais plutot :
    a=(x*x)+2; 


    1. Bonjour,

      alors il me semble qu'il y a une grosse confusion dans la notion de typage de variables. Tu veux qu'à l'exécution du programme cela affiche "a=x*(x+2)", c'est bien cela ? et non le résultat ?

      il faut donc que a soit une chaine de caractères, et non un entier !
      genre un truc comme ça :

      char a[10];
      sscanf(a, "a=x*(x+2)");
      printf("%s", a);


      voili voilou, si j'ai bien compris ce que tu voulais.
      1. Contributeur
        Salut,

        Pour que ça affiche X² + 2X plutôt non ?
        Sinon, hélas, il n'y a pas de commandes en C qui permettent le calcul formel. Si tu veux vraiment ce développement, il va falloir développer toi-même un algorithme de développement ;)

        Cordialement
        1. oui excuser , je voudrai que le programme affiche x^2+2x
      2. Hello,
        Je suis d'accord avec lefoufighter (la 2 éme réponse)
        Tu n'a qu'a mettre
        a=(x*x)+2
        Mais je veux bien savoir qu'est ce que ça veut dire (system("pause");) c'est à dire quel est son role?
        1. Contributeur
          Salut,
          Je pense que ce qu'il veut est une fonction qui permette le développement d'une expression comme dans son exemple (sauf qu'il a fait une petite erreur de calcul).
          Sinon le system("pause") permet de ne pas fermer la fenêtre dès la fin du programme, si elle n'est pas lancée en console.

          Cordialement