Décomposition en puissances entières

Signaler
Messages postés
11
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 juin 2004
-
Messages postés
24
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
10 juin 2004
-
Bonjour!

Je suis novice en la matière et j'aimerais qu'on me dépanne sur un sujet en langage C.

J'aimerais effectuer un programme me permettant d'afficher à l'écran les puissances de dix d'un nombre entier. Ex :
5412 = 2*1 + 1*10 + 4*100 + 5*1000.

Merci d'avance pour celui qui me donnera la solution.

4 réponses

Messages postés
24
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
10 juin 2004

Salut!
tu peux essayer avec ca:

#include <stdio.h>
int main(void)
{
int iNb = 3659783; //tu peux mettre ce que tu veux!
float fNb;int i 0,j,temp,puiss 1;
fNb = (float)iNb;
do
{
fNb = fNb/10;
i++;
}
while(fNb>1);
i--;
for(j = 0;j<i;j++)
puiss = 10 * puiss;
printf("%i = ",iNb);
for(j = 0;j<i;j++)
{
temp = (int)(10*fNb);
printf("%i * %i",temp,puiss);
fNb = 10 * fNb - temp;
printf(" + ");
puiss = puiss / 10;
}
printf("%i * 1\n",(int)(10*fNb) );
}

@+
SHIRAH
Messages postés
24
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
10 juin 2004

Pardon j'ai oublié le "return 0;" avant la dernière accolade fermante!

@+
SHIRAH
Messages postés
11
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 juin 2004

Merci bcp pour ton aide. Je vais l'essayer tout de suite.

@ bientôt

ScorpionTiti
Messages postés
24
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
10 juin 2004

Tiens voila une version plus simple à comprendre:

#include <stdio.h>
int main(void)
{int i 0,puiss 1;
int iNb2,iNb = 12345678; //ou tout ce que tu veux pour iNb
float fNb = (float)iNb;
printf("%i = ",iNb);
do
{
iNb2 = (int)(10 * (fNb/10 - (int)(fNb/10) ));
printf("%i*%i",iNb2,puiss);
puiss*=10;
fNb = fNb/10- iNb2/10;
if(fNb>1)
printf(" + ");
}
while(fNb>1);
return 0;
}

SHIRAH