Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1487 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] probleme de variable ....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] probleme de variable ....

n°228428
razorbak83
achetez pgeo en plus c'est bô
Posté le 15-10-2002 à 22:48:43  profilanswer
 

bon voila mon code :
 
#include <stdio.h>
#include <conio.h>
void main (void)
{
int n,factor;
long valeur;
clrscr();
while(1==1)
{
 
n=0;
valeur=0;
factor=0;
printf("Saisissez le nombre dont on veut calculer la factorielle : " );
scanf("%d",&n);
valeur=n;
factor=n;
if(n<0)
 printf("\nOn ne peut calculer la factorielle d'un chiffre negatif !\n" );
else    if(n==0)
  printf("\nLa factorielle de 0 est : 0\n" );
 else    if(n==1)
   printf("\nLa factorielle de 1 est : 1\n" );
  else
   {
   do
    {
    n--;
    valeur=valeur*n;
    }
   while(n>=2);
   printf ("\nLa factorielle de %d est : %ld\n",factor,valeur);
   }
}
}
 
le but du prog est de calculer la factorielle d'un chiffre donné...
mais arrivé à 13, le resultat n'est pas bon ... :heink:  
faut que je mette quoi comme type pour ma var valeur ???
help, je debute en C ;) :jap:  


---------------
powered by 1700+ JIUHB 0251 F @ 2450 / 1.74v :ange: et rock stable !!!! :sol:
mood
Publicité
Posté le 15-10-2002 à 22:48:43  profilanswer
 

n°228437
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 15-10-2002 à 23:06:01  profilanswer
 

c'est a cause d'un dépassement de capacite.
 
le mieux que tu puisses faire c'est déclarer tes variables comme float/double, c'est une représentation des nombres réels assez imprécise, mais elle te permettra de passer outre cette limitations sur les types entiers.
 
float f;
scanf("%f", &f);
 
edit:
et le while(1==1) tu peux tout simplement mettre while(1), ca economise un test!


Message édité par Taz@PPC le 15-10-2002 à 23:07:24

---------------
du bon usage de rand [C] / [C++]
n°229598
YungMakko
Posté le 17-10-2002 à 17:24:55  profilanswer
 

Sinon pour augmenter un peu, tu peux utiliser le type __int64 sous Windows pour repousser un peu la limitation si la précision est importante pour toi (et je le pense, si tu veux calculer un factoriel c'est pour avoir sa valeur précise!).
 
Après, le seul moyen et d'utiliser des libraries qui gèrent des nombres de taille infinie comme http://www.swox.com/gmp/, ou la Miracl librairie. Avec des libraries comme ça, tu calcules le factoriel de 1000 sans problème (faut juste de la place pour afficher la chaine de caractère qui représente le nombre!  :D )


Message édité par YungMakko le 17-10-2002 à 17:25:20

---------------
In tartiflette, we trust!
n°229599
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-10-2002 à 17:30:32  profilanswer
 

cela dit si tu veux calculer la factorielle d'un grand nombre, le mieux c'est d'utilsier la formule de Stirling


---------------
du bon usage de rand [C] / [C++]
n°229606
leirn
A.D.I.D.A.S.
Posté le 17-10-2002 à 17:37:59  profilanswer
 

Taz@PPC a écrit a écrit :

cela dit si tu veux calculer la factorielle d'un grand nombre, le mieux c'est d'utilsier la formule de Stirling




 
:jap:


---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°229620
YungMakko
Posté le 17-10-2002 à 17:53:38  profilanswer
 

Taz@PPC a écrit a écrit :

 
edit:
et le while(1==1) tu peux tout simplement mettre while(1), ca economise un test!




 
 :non:  On ne met jamais while(1) pour une boucle infinie, mais

Code :
  1. for(;;)


L'existance du '1' n'est pas justifiée.


Message édité par YungMakko le 17-10-2002 à 17:54:00

---------------
In tartiflette, we trust!
n°229627
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-10-2002 à 18:01:20  profilanswer
 

!0


---------------
du bon usage de rand [C] / [C++]
n°229657
leneuf22
Posté le 17-10-2002 à 18:55:54  profilanswer
 

ou while(true) :-)

n°229661
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-10-2002 à 19:08:12  profilanswer
 

leneuf22 a écrit a écrit :

ou while(true) :-)




 
qui comme chacun sait n'est pas du C


---------------
du bon usage de rand [C] / [C++]
n°229712
BifaceMcLe​OD
The HighGlandeur
Posté le 17-10-2002 à 19:44:11  profilanswer
 

Ben si !  :bounce:  

Code :
  1. typedef int BOOL;
  2. #define TRUE  1
  3. #define FALSE 0
  4. #define forever() for(;;)
  5. ...
  6. forever() {   // On aurait tout aussi bien pu
  7.    ....       // écrire "while (TRUE)"
  8. }


 :ange:

mood
Publicité
Posté le 17-10-2002 à 19:44:11  profilanswer
 

n°229732
tssstare
Posté le 17-10-2002 à 20:15:44  profilanswer
 

dites , moi je commence un peu le C et j'ai pas compris a quoi sert le "%d" lorsqu'on fait un scanf par exemple ....


Message édité par tssstare le 17-10-2002 à 20:16:06
n°229734
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-10-2002 à 20:17:04  profilanswer
 

Tssstare a écrit a écrit :

dites , moi je commence un peu le C et j'ai pas compris a quoi sert le "%d" lorsqu'on fait un scanf par exemple ....




 
achetes un livre s'il te plait. comme le K&R 2eme edition isbn 2-10-005116-4


---------------
du bon usage de rand [C] / [C++]
n°229886
Musaran
Cerveaulté
Posté le 18-10-2002 à 04:58:26  profilanswer
 

Taz@PPC a écrit a écrit :

qui comme chacun sait n'est pas du C


Si... du C99  :ange:


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°229913
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 18-10-2002 à 09:43:00  profilanswer
 

Musaran a écrit a écrit :

Si... du C99  :ange:  




 
oui c'est dans <stdbool.h>  :p


---------------
du bon usage de rand [C] / [C++]

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] probleme de variable ....

 

Sujets relatifs
Bonjour .. possible de créer une variable globale entre 2 scripts PHP?problème sur les fichiers (ouverture, fermeture, etc.) [résolu]
Affectation variable globaleSaut de ligne dans un LAYOUT -> Probleme !
Probleme avec un portGros problème de division et d'arrondi !
problème de compilation...Tomcat 4 - Problème de sur-persistance d'une page !
[VB] Problème de typageProblème lors de l'upload, il me trouve pas d'attributs snifff
Plus de sujets relatifs à : [C] probleme de variable ....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR