Partage
  • Partager sur Facebook
  • Partager sur Twitter

Je débute j'ai besoin d'aide

Sujet résolu
11 octobre 2021 à 19:44:13

Bonjour, j'ai 14 ans et sa fit seulement 2 jours que je code donc je ne comprend pas pourquoi mon code me renvoie a chaque fois 0 à la fin,

en gros j'aimerais que sa fasse le théorème de Pythagore automatiquement.

Voici le code:

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

int main(void)
{
int a, b, aa, bb;
    int c = sqrt(aa + bb);
    
    a = 5;
    b = 4;   
    aa = pow(a, 2);
    bb = pow(b, 2);

    printf("%d * %d + %d * %d = h * h\n", a, a, b, b);
    printf("%d + %d = h * h\n", aa, bb);
    printf("h = %d\n", c);
    
    return 0;
} 

-
Edité par FelixLecuyer 11 octobre 2021 à 20:12:51

  • Partager sur Facebook
  • Partager sur Twitter
11 octobre 2021 à 19:58:55

Hello,

Pour poster du code


Pour ton problème: aa et bb ne sont pas initialisés lorsque tu calcules c ligne 7. Dépace la ligne 7 après la ligne bb=....

Edit: et pourquoi appeler ta variable hypothénuse c ? Appelle-la hypothenuse, c'est bien plus clair. C'est juste un peu plus long à taper.

-
Edité par edgarjacobs 11 octobre 2021 à 20:10:43

  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

11 octobre 2021 à 20:14:44

j'ai pas compris qu'il ne sont pas initialiser ?  a ci c'est bon je vien de comprend merci !!

Et merci pour les astuces !

-
Edité par FelixLecuyer 11 octobre 2021 à 20:15:22

  • Partager sur Facebook
  • Partager sur Twitter
11 octobre 2021 à 20:39:46

Re,

Marque ton sujet en résolu (edit du 1er post)

Et, tant que j'y pense, pour calculer le carré d'un nombre, il vaut mieux faire aa=a*a que aa=pow(a,2)

  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

11 octobre 2021 à 21:09:41

Maintenant j'ai ajouter des scanf mais sa ne marche pas et je comprend pas pourquoi ( c'est la 1er fois j'utilise c'êtes  fonction ) merci pour a, a c'est plus logique.

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

int main(void)
{
int a, b, aa, bb;
  
        printf("quel est la mesure du cote opposer\n");
        scanf("%d", a);
        printf("quel est la mesure du cote adjacent\n");
        scanf("%d", b);  

    float c = sqrt(aa + bb);

        printf("ABC est rectangle en A donc j utilise le theoreme de phythagore");
        printf("AB au carre + AC au carre = BD");
        printf(" %d * %d + %d * %d = h * h\n", a, a, b, b);

    aa = pow(a, a);
    bb = pow(b, b);

        printf("%d + %d = h * h\n", aa, bb);
        printf("h = %f\n", c);
    
    return 0;
} 



-
Edité par FelixLecuyer 11 octobre 2021 à 21:12:45

  • Partager sur Facebook
  • Partager sur Twitter
11 octobre 2021 à 22:07:28

Attention, pow(a, a) calcule a^a et non pas a*a. Je crois que tu as voulu suivre le bon conseil d'edgarjacobs, mais tu l'as l'as lu trop vite. En ligne 19 il faut écrire :

aa = a * a;        // tout simplement

Dans un 'scanf', on met en argument non pas la variable (par exemple 'a') mais son adresse, qu'on indique avec le symbole &. Par exemple pour la ligne 11 :

scanf("%d", &b);   // pas b tout court

Ligne 16, je crois que c'est "BC" et non "BD" (bon, là c'est juste de l'affichage...)

La ligne 13, il faut la mettre après les lignes 19 et 20 !!!

Découvrir la programmation à quatorze ans, je t'envie ! :D

-
Edité par robun 11 octobre 2021 à 22:10:28

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 1:15:01

Je ne sais pas quel cours tu suis. Je t'en propose un qui est très bon:
https://zestedesavoir.com/tutoriels/755/le-langage-c-1/
Bonne chance!
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

12 octobre 2021 à 1:24:43

Salut, les fonctions sqrt() et pow() renvoient des float et non des int, utilise des float plutôt que des int
  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 1:48:00

KevinGL a écrit:

Salut, les fonctions sqrt() et pow() renvoient des float et non des int, utilise des float plutôt que des int


Non, ces fonctions retournent des double, qui est le type flottant le plus courant. Sauf cas particulier, il n'y a pas de raison d'utiliser float.
  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 2:35:17

De plus, il y a peu de chances que l'hypothénuse soit un entier, sauf pour les triangles du genre 3, 4, 5 ...

On les appelle triplets pythagoriciens primitifs.

-
Edité par PierrotLeFou 12 octobre 2021 à 4:48:36

  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

12 octobre 2021 à 10:27:36

PierrotLeFou a écrit:

De plus, il y a peu de chances que l'hypothénuse soit un entier, sauf pour les triangles du genre 3, 4, 5 ...

Parce que sqrt retourne un entier ?

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 11:06:46

robun a écrit:

Attention, pow(a, a) calcule a^a et non pas a*a. Je crois que tu as voulu suivre le bon conseil d'edgarjacobs, mais tu l'as l'as lu trop vite. En ligne 19 il faut écrire :

aa = a * a;        // tout simplement

Mieux, déclarer les variables à l'endroit où on est capable de leur donner une valeur initiale "intelligente". Donc pas au début pour aa, mais une fois qu'on connait a, et qu'on a besoin de aa.

int aa = a * a;




-
Edité par michelbillaud 12 octobre 2021 à 11:08:12

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 15:16:17

@Zero.c:
Je ne dis pas que sqrt retourne un entier, mais on peut faire:
n = (int) sqrt((double)x + 0.5);

edit:

le compilateur est assez intelligent pour convertir:

int n, x=14;

n = sqrt(x+0.5);

-
Edité par PierrotLeFou 12 octobre 2021 à 18:04:50

  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

12 octobre 2021 à 18:09:45

robun a écrit:

Attention, pow(a, a) calcule a^a et non pas a*a. Je crois que tu as voulu suivre le bon conseil d'edgarjacobs, mais tu l'as l'as lu trop vite. En ligne 19 il faut écrire :

aa = a * a;        // tout simplement

Dans un 'scanf', on met en argument non pas la variable (par exemple 'a') mais son adresse, qu'on indique avec le symbole &. Par exemple pour la ligne 11 :

scanf("%d", &b);   // pas b tout court

Ligne 16, je crois que c'est "BC" et non "BD" (bon, là c'est juste de l'affichage...)

La ligne 13, il faut la mettre après les lignes 19 et 20 !!!

Découvrir la programmation à quatorze ans, je t'envie ! :D

-
Edité par robun il y a environ 19 heures

Merci ! pour tout !

Mais sa me re fait encore la meme erreur... apres avoir mis les mesure le programme s'arrete



-
Edité par FelixLecuyer 12 octobre 2021 à 18:15:25

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 18:21:40

Je pense que tu devrais reposter ton code. On ne sais plus ce que tu as fait ou pas fait ...
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

12 octobre 2021 à 18:24:52

FelixLecuyer a écrit:

Mais sa me re fait encore la meme erreur... apres avoir mis les mesure le programme s'arrete

Ok, mais avec quel code ? As tu apporté les modifications qu'on t'a conseillé correctement ?

  • Partager sur Facebook
  • Partager sur Twitter
...
12 octobre 2021 à 18:28:08

rouIoude a écrit:

FelixLecuyer a écrit:

Mais sa me re fait encore la meme erreur... apres avoir mis les mesure le programme s'arrete

Ok, mais avec quel code ? As tu apporté les modifications qu'on t'a conseillé correctement ?


oui j'ai tout fait comme vous avez dit

-
Edité par FelixLecuyer 12 octobre 2021 à 18:29:27

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 18:29:58

Et si, comme déjà demandé, tu postais ton dernier code ?
  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

12 octobre 2021 à 18:31:51

rouIoude a écrit:

Ok, mais avec quel code ? 



  • Partager sur Facebook
  • Partager sur Twitter
...
12 octobre 2021 à 18:33:14

rouIoude a écrit:

rouIoude a écrit:

Ok, mais avec quel code ? 

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

int main(void)
{
float a, b, aa, bb;
  
        printf("quel est la mesure du cote opposer\n");
        scanf("%f", &a);
        printf("quel est la mesure du cote adjacent\n");
        scanf("%f", &b);

    aa = a * a;
    bb = b * b;
    float c = sqrt(aa + bb);

        printf("ABC est rectangle en A donc j utilise le theoreme de phythagore");
        printf("AB au carre + AC au carre = BC");
        printf("%f * %f + %f * %f = h * h\n", a, a, b, b);
        printf("%f + %f = h * h\n", aa, bb);
        printf("h = %f\n", c);
    
    return 0;
} 


  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 18:38:18

FelixLecuyer a écrit:

Mais sa me re fait encore la meme erreur... apres avoir mis les mesure le programme s'arrete

C'est qu'il a terminé son boulot !
Tu dis la même erreur ? c'est quoi l'erreur ?
  • Partager sur Facebook
  • Partager sur Twitter
...
12 octobre 2021 à 18:42:41

rouIoude a écrit:

FelixLecuyer a écrit:

Mais sa me re fait encore la meme erreur... apres avoir mis les mesure le programme s'arrete

C'est qu'il a terminé son boulot !
Tu dis la même erreur ? c'est quoi l'erreur ?


ba apres avoir mis les nombre a et b sa stop le programme

-
Edité par FelixLecuyer 12 octobre 2021 à 18:43:00

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 18:48:00

Chez moi, j'ai

Pas de blocage

-
Edité par edgarjacobs 12 octobre 2021 à 18:49:21

  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

12 octobre 2021 à 18:48:27

Tu l'as bien recompilé le programme ? Parce que c'est pas normal !
  • Partager sur Facebook
  • Partager sur Twitter
...
12 octobre 2021 à 18:51:44

edgarjacobs a écrit:

Chez moi, j'ai

Pas de blocage

-
Edité par edgarjacobs il y a moins de 30s

pourquoi ma sa marche pas pou moi ?
sinon je suis sur windows je pense c'est peut etre sa ?
  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 18:55:09

Je suis également sous windows. As-tu vu la question de rouloude ?
  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

12 octobre 2021 à 18:57:07

edgarjacobs a écrit:

Je suis également sous windows. As-tu vu la question de rouloude ?


desoler je debute donc je comprend pas vraiment ce qu'il veut dire par recompilé.
  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2021 à 18:59:32

As-tu bien compilé ton dernier code ?
  • Partager sur Facebook
  • Partager sur Twitter

On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

12 octobre 2021 à 19:03:44

Ça n'a rien a voir avec Windows dans ce cas-ci. Revérifie ton code et refait la compilation.
Puis testes à nouveau.
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

12 octobre 2021 à 19:05:38

PierrotLeFou a écrit:

Ça n'a rien a voir avec Windows dans ce cas-ci. Revérifie ton code et refait la compilation.
Puis testes à nouveau.


a je les deja fait plusieurs fois et non sa ne marche pas.

(sa donne sa)

Update ! 

C'EST bon sa Marche !!!!!! YESS

merci a tous !

-
Edité par FelixLecuyer 12 octobre 2021 à 19:23:35

  • Partager sur Facebook
  • Partager sur Twitter