Intervalle

Vlàdmir -  
 Le concombre de Schrödinger -
Bonjour,
comment expliquez que le résulta soi faux?

#include <stdio.h>
#include <stdlib.h>
int main ()
{
char i=25, nombre, somme=0;
for (i=25; i>=25; i++)
{
i++;
somme=nombre+somme;
}
printf ("la somme est %ld \n");
system ("pause");
return 0;
}
Configuration: Windows XP
Safari 532.0

6 réponses

  1. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Hello,

    De 1 la variable nombre n'est pas initialisée. Donc l'utiliser dans une somme c'est un peu suicidaire.

    De deux la boucle suivante n'est même pas exécutée:

    for (i=25; i>=25; i++)
    {
    i++;
    somme=nombre+somme;
    }

    En effet on part de i=25, pour aller jusqu'à i>=25, déjà supérieur c'est tordu, mais comme i =25 et qu'on s'arrête à i=25 au minimum, alors on ne rentre pas dans la boucle.

    Loulou.
    0
  2. Le concombre de Schrödinger
     
    Salut

    Et pourquoi utiliser des char si tu veux stocker des int ?
    pourquoi incrémenter i dans le corps du for alors qu'elle l'est déjà dans le for ?
    À moins que ton but ne soit de rendre difficile la compréhension du pgm
    0
  3. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Non non je crois que c'est un programme tordu, et il faut expliquer les erreurs ^^

    Bien vu le coup du char, encore que je suis même pas sûr que la déclaration d'un char=25 fonctionne :)
    0
  4. loupius Messages postés 789 Statut Membre 148
     
    comment expliquez que le résulta soi faux?
    Je ne peux l'expliquer car on ne sait même pas ce que le programme doit faire !
    Si tu veux faire une somme, je dirai que c'est plutôt une multiplication... mais une multiplication n'est qu'une somme, alors pourquoi pas ;-)
    la boucle suivante n'est même pas exécutée:
    Si, elle sera exécutée! Et même beaucoup de fois! Je crois que tu fais une erreur car, dans un 'for', la 2ème partie n'est pas une condition d'arrêt mais une condition de continuation; ce qui signifie qu'en fait la boucle ne s'arrêtera jamais.
    je suis même pas sûr que la déclaration d'un char=25 fonctionne
    Il n'y a aucune raison que cela ne fonctionne pas.
    D'autre part, à la vue du 'printf', le compilateut doit râler.
    Bonne soirée.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Enfin je vois surtout pas l'utilité de faire un programme aussi merdique ^^

    en effet c'est abérant dans son ensemble.
    0
  7. Le concombre de Schrödinger
     
    Salut

    Ya un exo qui a cours en ce moment : sommer les multiples de 10 jusqu'à une valeur donnée
    c'est vrai que c'est un peu vicieux :D
    0