Probleme c++, compatibilité pow(n,k) et %
Fermé
Bapppi
Messages postés
3
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
15 octobre 2010
-
15 oct. 2010 à 22:44
Vicking54 Messages postés 89 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 17 mai 2011 - 17 oct. 2010 à 18:54
Vicking54 Messages postés 89 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 17 mai 2011 - 17 oct. 2010 à 18:54
A voir également:
- Probleme c++, compatibilité pow(n,k) et %
- Compatibilite windows 11 - Guide
- Tableau compatibilité objectif nikon - Forum Nikon
- K-lite codec pack full - Télécharger - Conversion & Codecs
- Puissance en c sans pow - Forum Programmation
- (K) emoji ✓ - Forum Mail
2 réponses
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
15 oct. 2010 à 23:07
15 oct. 2010 à 23:07
bonjour,
les opérandes de modulo (%) doivent être des types entiers et pow(x,y) retourne un type double.
attention à l'écriture:
un ; après le while signifie que l'instruction while est terminée. (donc votre while ne fait rien.)
une affectation en C (ou C++) est réalisée par un opérateur = (k=k+1)
l'opérateur == est un opérateur de comparaison.
cdlt
les opérandes de modulo (%) doivent être des types entiers et pow(x,y) retourne un type double.
attention à l'écriture:
un ; après le while signifie que l'instruction while est terminée. (donc votre while ne fait rien.)
une affectation en C (ou C++) est réalisée par un opérateur = (k=k+1)
l'opérateur == est un opérateur de comparaison.
cdlt
Vicking54
Messages postés
89
Date d'inscription
lundi 11 octobre 2010
Statut
Membre
Dernière intervention
17 mai 2011
26
Modifié par Vicking54 le 16/10/2010 à 06:57
Modifié par Vicking54 le 16/10/2010 à 06:57
Voici ton code corrigé
int nbrdechifr(int x) { int k = 1; // Ici le (int) est un cast pour utiliser le % sans soucis while( x % (int) pow(10.0,k) != x) { // Ici il faut utiliser =(affectation) au lieu de == (comparaison) k = k+1; } return k; }
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
16 oct. 2010 à 09:32
16 oct. 2010 à 09:32
en C (C++) k=k+1 est souvent délaissé au profit de l'incrémentation unaire ++k ou k++;
le code du while pourrait se résumer à
while(x % (int)pow (10.0,k++) != x) ;
le code du while pourrait se résumer à
while(x % (int)pow (10.0,k++) != x) ;
Vicking54
Messages postés
89
Date d'inscription
lundi 11 octobre 2010
Statut
Membre
Dernière intervention
17 mai 2011
26
16 oct. 2010 à 10:07
16 oct. 2010 à 10:07
oui k++ serait avantagé mais bon c'est plus compréhensible pour quelqu'un qui débute. oui le while peut être aussi raccourci comme cela mais pour la même raison que j'ai cité tout à l'heure c'est mieux de bien développer pour mieux comprendre
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 840
16 oct. 2010 à 10:41
16 oct. 2010 à 10:41
A ydurce,
Sauf que si tu fais ton while (... k++), il ne faut pas oublier de dire qu'il faut mettre return k-1; au lieu de return k...
Sauf que si tu fais ton while (... k++), il ne faut pas oublier de dire qu'il faut mettre return k-1; au lieu de return k...
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
16 oct. 2010 à 21:59
16 oct. 2010 à 21:59
tout a fait ou k=0 si on met ++k
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
16 oct. 2010 à 22:20
16 oct. 2010 à 22:20
pour vicking54:
l'opérateur ++ (ou --) est important en C ou C++ car il est associé à la notion de pointeur ou d'itérateur et doit être abordé et compris très tôt. D'autant que l'opérateur = est une aberration mathématique auquel on devrait substituer dans ce cas là l'opérateur +=.
pour le while, je suis d'accord avec toi sur le peu d'intérêt d'une contraction sinon à faire appréhender les notions de post ou pré incrément qui créent des différences importantes dans les résultats comme l'a justement noté fiddy.
l'opérateur ++ (ou --) est important en C ou C++ car il est associé à la notion de pointeur ou d'itérateur et doit être abordé et compris très tôt. D'autant que l'opérateur = est une aberration mathématique auquel on devrait substituer dans ce cas là l'opérateur +=.
pour le while, je suis d'accord avec toi sur le peu d'intérêt d'une contraction sinon à faire appréhender les notions de post ou pré incrément qui créent des différences importantes dans les résultats comme l'a justement noté fiddy.