Programme en C (Boucles)
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Programme en C (Boucles)



  1. #1
    Slahwen

    Programme en C (Boucles)


    ------

    Salut !
    Je fais un programme en C permettant de faire ce calcul : Somme = 1+1/3+1/5+1/7+...+1/99
    En utilisant les boucles do...while, while et for
    Mais j’arrive à trois résultats différent et faux...
    Quelqu’un pourrait me dire où sont les problèmes ?

    Programme :
    Code:
    # include <stdio.h> int main()
    {
    const int DENO1 = 1, DENO2 = 99, PAS = 2, DEBUT = 1, FIN = 1/99.0;
    int deno;
    float somme = 0.0, valeur = DEBUT;
    
    // Boucle Do ... While
    
    printf("Boucle DO ... WHILE : \n"); do
    {somme+=valeur; valeur+=1.0/deno;
    deno+=PAS;
    }
    while(deno<=DENO2);
    printf("La somme vaut %.2f \n\n", somme);
    
    // Boucle While
    
    somme = 0.0; valeur = DEBUT;
    printf("Boucle WHILE : \n"); while(deno<=DENO2) {somme+=valeur; valeur+=1.0/deno; deno+=PAS;
    }
    printf("La somme vaut %.2f \n\n", somme);
    
    // Boucle For
    
    somme = 0.0;
    printf("Boucle FOR : \n");
    for (deno = DENO1; deno <= DENO2; deno += PAS)
    somme += 1.0/deno;
    printf("La somme vaut %.2f \n\n", somme) ;
    
    return 0;
    }
    Résultats :

    Boucle DO ... WHILE :
    La somme vaut 1.#J

    Boucle WHILE :
    La somme vaut 0.00

    Boucle FOR :
    La somme vaut 2.94

    -----

  2. #2
    Jack
    Modérateur

    Re : Programme en C (Boucles)

    La variable deno n'étant pas initialisée, ton programme ne peut pas fonctionner.
    C'est étonnant qu'aucun warning ne soit apparu à la compilation.

    A+

  3. #3
    pm42

    Re : Programme en C (Boucles)

    En effet.
    J'ai aussi l'impression que les 2 1ères boucles font 2 fois l'addition, faisant un += dans valeur puis un += dans somme.

  4. #4
    Ikhar84
    Animateur Informatique

    Re : Programme en C (Boucles)

    Bonsoir.
    Il semble y avoir une grande confusion dans les variable, la variable deno n'étant pas initialisée !
    De l'utilité de bien choisir le nom de ses variable...
    deno, DENO1, DENO2... Preferez un nom plus explicite pour vous y retrouver !

    Quelle est la différence entre DENO1 et DEBUT par exemple ? Toutes deux initialisées a 1 et dont les valeurs ne semblent pas changer ?
    A quoi sert la variable FIN ? (jamais utilisée il me semble)

    La boucle for me semble la plus propre :
    deno initialisée a DENO1, instruction conditionnelle <= DENO2, et le PAS. Elle devrait être la plus proche du résultat...

    Il faudrait revoir vos variables et suivre le deroulement des boucles pas à pas :
    Boucle do...while :
    1ere boucle :
    somme += valeur;
    0.0 += 1;
    valeur+=1.0/deno;
    1 += 1.0 / ? (deno non initialisée...)
    deno += pas
    ? += 2
    ...

    Bon courage !

  5. A voir en vidéo sur Futura
  6. #5
    Slahwen

    Re : Programme en C (Boucles)

    Merci pour toutes vos réponses !
    J'ai refait entièrement mon programme avec des variables plus claires et revue de A à Z toutes mes boucles et maintenant tout fonctionne correctement !

Discussions similaires

  1. Boucles parallèles?
    Par L'intello dans le forum Archives
    Réponses: 4
    Dernier message: 13/09/2013, 13h07
  2. Les boucles ......
    Par frequi1 dans le forum Programmation et langages, Algorithmique
    Réponses: 41
    Dernier message: 10/10/2012, 13h41
  3. Boucles de masse ?
    Par eSb` dans le forum Électronique
    Réponses: 3
    Dernier message: 06/10/2010, 09h51
  4. Problème de boucles
    Par Pythix dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 29/11/2008, 09h51
  5. cheveux bouclés
    Par invite11f2a3ff dans le forum Biologie
    Réponses: 12
    Dernier message: 23/07/2005, 03h47