A voir également:
- Conversion
- Logiciel gratuit conversion calendrier républicain - Télécharger - Études & Formations
- 2k€ conversion ✓ - Forum Bureautique
- Conversion bytes en mo ✓ - Forum Webmastering
- Conversion mb en mo ✓ - Forum Bureautique
- Combien de Bytes pour 1Mo ? ✓ - Forum Programmation
7 réponses
Bonjour
L'explication, c'est que ton programme est mal fait.
Pour pouvoir te dire plus de détails, il faudrait que tu le montres.
La limite ne serait pas plutôt 32768 ?
L'explication, c'est que ton programme est mal fait.
Pour pouvoir te dire plus de détails, il faudrait que tu le montres.
La limite ne serait pas plutôt 32768 ?
Un programme qui donne de réponses correctes dans certains cas n'est PAS un programme correct s'il en donne des mauvaises dans d'autres cas.
Tu ne trouves pas ça évident ?
Tu ne trouves pas ça évident ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
#include <stdio.h>
void main()
{
int n,i,ch;
printf("donner un nombre";
scanf("%d",&n);
ch=0;
i=1;
while ( n/i !=0)
{ch=ch+1;
i=i*10;}
printf(""%d",ch);
}
void main()
{
int n,i,ch;
printf("donner un nombre";
scanf("%d",&n);
ch=0;
i=1;
while ( n/i !=0)
{ch=ch+1;
i=i*10;}
printf(""%d",ch);
}
Le problème c'est que tu travailles avec des entiers de 16 bits
quand tu es rendu à 5 chiffres, tu essayes ensuite une division par 100 000 pour tester s'il y a un sixième chiffre. Mais ta multiplication 10 000 par 10 ne te donne pas 100 000 (qui ne tient pas sur 16 bits) mais je ne sais quel nombre (tu peux le vérifier en faisant des print
Il serait beaucoup plus simple de diviser ton nombre par 10 à chaque tour, il n'y aurait jamais de débordement
quand tu es rendu à 5 chiffres, tu essayes ensuite une division par 100 000 pour tester s'il y a un sixième chiffre. Mais ta multiplication 10 000 par 10 ne te donne pas 100 000 (qui ne tient pas sur 16 bits) mais je ne sais quel nombre (tu peux le vérifier en faisant des print
Il serait beaucoup plus simple de diviser ton nombre par 10 à chaque tour, il n'y aurait jamais de débordement