Reputation: 39
It should work but it doesn't for some reason. For a number 8 and base 3 it prints "28" for example. Only the first digit is right.
Here is the function code (puissance = power, nombre = number, base = base, chiffre = digit):
#include <stdio.h>
#include "m11.h"
void conversion(unsigned long nombre, unsigned int base)
{
//coder votre fonction ici
/*l'écriture en base b de l'entier n pour b inférieur ou égal à 10 (on pourra essayer pour b <= 36 dans un second temps) avec un retour à la ligne. Attention aux valeurs extrêmes*/
//de base 10 en base b
//d abord on trouve le nombre le plus grand
int puissance=1;
while ((puissance)<=nombre) //on va mettre la base dans la puissance jusqu'a ce que le nombre va etre plus grand que le nombre
{
puissance=puissance*base;
}
puissance=puissance/base; //psk le nombre normal est tro grand
while (puissance>=1) //divisions euclidiennes
{
int chiffre = nombre/puissance; //on conserve le quotient comme le chiffre a afficher
int nombre = nombre%puissance; //on conserve le reste et on fait les operations sur le reste
printf("%d",chiffre);
//printf("%d",chiffre); //on affiche notre chiffre
puissance=puissance/base; //on decremente la puissance
//la boucle est pas juste...
}
printf("\n");
}
Upvotes: 1
Views: 72
Reputation: 39
I figured this out.
{
int chiffre = nombre/puissance; //on conserve le quotient comme le chiffre a afficher
*int* nombre = nombre%puissance; //on conserve le reste et on fait les operations sur le reste
}
I need to remove this int because I need to change the value of number and when I redefine it instead it creates errors.
Upvotes: 2