Problèmes de format en C

Discutez d'informatique ici !
ghghgh
Membre Relatif
Messages: 305
Enregistré le: 04 Aoû 2006, 15:20

problèmes de format en C

par ghghgh » 26 Nov 2006, 00:22

Bonjour tout le monde !

J'ai quelques problèmes avec les unsigned long long en C...
et le format pour printf("%llu", monUnsignedLongLong);

par exemple pour le code suivant, celui ci marche niquel quand je le compile avec des entiers (int) format %d, par contre
il compile mais renvoie des valeurs erronées quand je le fais tourner avec des unsigned long long...

#include
#include
#include

int puissanceP(int N, int P) {
int total = 0;
int puissance = P;
while(floor(N/P) > 0) {
total += (int)floor(N/P);
P *= puissance;
}
return total;
}

int main()
{
int N, P;
scanf("%d%d", &N, &P);

printf("%d\n", puissanceP(N,P));

system("pause");
return 0;
}

vlà le code avec les int...

merci à ceux qui prendront le temps de me répondre je vois pas pourquoi il ne fonctionne pas :s :'(

A++ bonne continuation



Patastronch
Membre Irrationnel
Messages: 1345
Enregistré le: 22 Aoû 2005, 23:53

par Patastronch » 26 Nov 2006, 01:16

Donne plutot le code qui ne compile pas ...

ghghgh
Membre Relatif
Messages: 305
Enregistré le: 04 Aoû 2006, 15:20

par ghghgh » 26 Nov 2006, 01:40

#include
#include
#include

unsigned long long puissanceP(unsigned long long N, unsigned long long P) {
unsigned long long total = 0;
unsigned long long puissance = P;
while((unsigned long long)floor(N/P) > 0) {
total += (unsigned long long)floor(N/P);
P *= puissance;
}
return total;
}

int main()
{
unsigned long long N, P;
scanf("%llu%llu", &N, &P);

printf("%llu\n", puissanceP(N,P));

system("pause");
return 0;
}

voilà voilà

mais ça compile... le problème c'est que l'algo ne tourne pas correctement...

merci

Dominique Lefebvre
Membre Légendaire
Messages: 8005
Enregistré le: 03 Déc 2005, 12:00

par Dominique Lefebvre » 26 Nov 2006, 11:28

Bonjour,

Je viens d'exécuter tes deux codes sous Dev-C++, avec différents couples de Net P (10,2) (100,3) et (1000,4)...
J'obtiens les mêmes résultats...

Où donc ton algo plante-t-il?

ghghgh
Membre Relatif
Messages: 305
Enregistré le: 04 Aoû 2006, 15:20

par ghghgh » 26 Nov 2006, 17:04

non, c'est bon désolé, j'avais oublié de convertir la valeur que renvoie le floor qui est un double en unsigned long long :-/ pour le while...

désolé de vous avoir déranger, tout fonctionne maintenant :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite