c语言实现小数化为分数
时间: 2023-06-15 09:03:42 浏览: 1293
首先,我们需要将小数转化为分数的形式,这可以通过以下步骤完成:
1. 将小数部分乘以一个10的幂,使其成为整数。
2. 将分子和分母都除以它们的最大公约数,以得到最简分数。
下面是一个C语言程序,可以将小数转化为分数:
```c
#include <stdio.h>
int gcd(int a, int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
void decimalToFraction(double num)
{
int sign = 1, integerPart, numerator, denominator, divisor;
double decimalPart;
if (num < 0) {
sign = -1;
num = -num;
}
integerPart = (int)num;
decimalPart = num - integerPart;
numerator = decimalPart * 1000000;
denominator = 1000000;
divisor = gcd(numerator, denominator);
numerator /= divisor;
denominator /= divisor;
numerator += integerPart * denominator;
numerator *= sign;
printf("%d/%d\n", numerator, denominator);
}
int main()
{
double num;
printf("Enter a decimal number: ");
scanf("%lf", &num);
decimalToFraction(num);
return 0;
}
```
代码中的gcd函数用于计算分子和分母的最大公约数,decimalToFraction函数将小数转换为最简分数,main函数接受用户输入的小数并调用decimalToFraction函数将其转换为分数。
阅读全文