void h_p_decimal(int dividend,int divisor,int digit=100) //a被除数,b除数,精准位数
{
char rlt[digit+1]={0};
int rem=1,quo=1; //remainder余数,quotient商
printf("0.");
for(int i=0;i<digit&&rem!=0;i++)
{
quo=dividend*10/divisor;
rem=dividend*10%divisor;
dividend = rem;
rlt[i]=quo+48;
printf("%c",rlt[i]);
}
}
VS版:
#include <stdio.h>
constexpr auto HPDDIGIT = 200; //精准位数
void h_p_decimal(int dividend, int diviso);
void h_p_decimal(int dividend, int divisor) //a被除数,b除数
{
char rlt[HPDDIGIT + 1] = { 0 };
int rem = 1, quo = 1; //remainder余数,quotient商
printf("0.");
for (int i = 0; i < HPDDIGIT && rem != 0; i++)
{
quo = dividend * 10 / divisor;
rem = dividend * 10 % divisor;
dividend = rem;
rlt[i] = quo + 48;
printf("%c", rlt[i]);
}
}
int main(void)
{
int a, b;
scanf_s("%d/%d", &a, &b);
h_p_decimal(a, b);
return 0;
}