Resultat

Loïck -  
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   -
BONSOIR.

#include <stdio.h>
#include <stdlib.h>
int main ()
{
long int i, nombre, produit=1;
for (i=10; i<100; i+=10)
{
printf ("Saisissez le nombre %i ", i+10);
produit=produit*nombre;
i
}
printf ("Le produit est %li\n", produit);
system ("pause");
return 0;
}

CE PROGRAMME DEVRAIT TROUVER COMME RESULTAT 3628800000000000. IL EFFECTU LA MULTIPLICATION DES NOMBRES 10, 20, 30 ... JUSQU'A 100. MAIS POURQUOI ME DONNE-T-IL UN FAUX RESULTAT?
A voir également:

6 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
la variable nombre n'est jamais initialisée... et donc vaut n'importe quoi. Ce qui fait que l'opération produit=produit*nombre; n'a pas trop de sens.
0
Loïck
 
et vous me conseillez quoi?
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
et bien réfléchis à ce que tu voulais faire.

Prend une feuille de papier et un crayon et une gomme.

Essaye toi-même de faire "tourner" ton programme. Fais semblant d'être un ordinateur, une machine, exécute les lignes pas-à-pas. Lorsqu'une variable est crée, note son nom sur ta feuille de papier. Lorsqu'une valeur lui est assignée, note-la à coté. Lorsque la valeur change, efface l'ancienne et remplace-la par la nouvelle.

Ainsi tu comprendras ce que tu as écris, et je pense que tu verras très vite ton erreur, elle est facile à corriger.

PS : cette méthode que je te donne est une très bonne pratique; à tout le temps utiliser lorsque tu ne te sens pas à l'aise avec ton code, pour apprendre et débuter.
0
Loïck
 
#include <stdio.h>
#include <stdlib.h>
int main ()
{
long int i, produit=1;
for (i=10; i<100; i+=10)
{
produit=produit*i+10;
}
printf ("le produit est %li\n", produit);
system ("pause");
return 0;
}
Voici celui que j'ai fais. C'est toujours pas juste.
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
bon le recours à la variable nombre faux est corrigé, c'est déjà ça ;)

maintenant, si tu exécute ton algorithme ce n'est pas ce que tu souhaites faire...

essaye comme je t'ai dis et dis-moi les nombres que tu obtiens pour les 3 premières itérations de la boucle. Tu dois faire une erreur de calcul quelquepart si en vérifiant tu ne vois pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Loïck
 
je croi que celui là est juste, mais il ne s'exécute pas pourquoi?

#include <stdio.h>
#include <stdlib.h>
int main ()
{
long int i, produit;
i=0;
produit=1;
do
{
i+10;
produit=produit+i;
}
while (i<100);
printf ("Le produit est %lf \n", produit);
system ("pause");
return 0;
}
0
Anouar
 
Bon je crois que tu es presque arriver...
je crois que le probleme de ton programme que long ne peut pas contenir un nombre si grand comme ce produit.
bon voilà un essaye mais en ce limitant à 50.

#include <stdio.h>
#include <stdlib.h>
int main ()
{
long int i, produit=1;
for (i=10; i<50; i+=10)
{
produit=produit*i;
}
printf ("le produit est %li\n", produit);
system ("pause");
return 0;
}
0
Loïck
 
Et si j'utilise long long int? Ce serait possible?
0
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
Tout dépend de ta machine !
Si tu as une 32 bits, normalement un 'int' ou un 'long' fait 4 octets (soit 32 bits) ce qui fait au maximum environ à peine 10^10. Il faudrait donc que tu utilises un 'long long int' qui fait 8 octets soit un maximum d'à peine 10^20.
Bonne continuation.
0