|
发表于 2018-12-17 22:06:02
|
显示全部楼层
本楼为最佳答案
 - #include <stdio.h>
- typedef struct
- {
- size_t numerator;
- size_t denominator;
- } Fraction;
- size_t GetGreatestCommonDivisor(Fraction fraction)
- {
- size_t greatest_common_divisor;
- if(fraction.numerator > fraction.denominator)
- {
- greatest_common_divisor = fraction.denominator;
- }
- else
- {
- greatest_common_divisor = fraction.numerator;
- }
- while((fraction.numerator % greatest_common_divisor != 0) || (fraction.denominator % greatest_common_divisor != 0))
- --greatest_common_divisor;
- return greatest_common_divisor;
- }
- Fraction Reduce(Fraction fraction)
- {
- size_t greatest_common_divisor = GetGreatestCommonDivisor(fraction);
- Fraction result = {fraction.numerator / greatest_common_divisor, fraction.denominator / greatest_common_divisor};
- return result;
- }
- void PrintFraction(Fraction fraction)
- {
- printf("%u/%u\n", fraction.numerator, fraction.denominator);
- }
- int main(void)
- {
- Fraction fraction;
- printf("请输入: ");
- scanf("%u/%u", &fraction.numerator, &fraction.denominator);
- PrintFraction(Reduce(fraction));
- return 0;
- }
复制代码 |
评分
-
查看全部评分
|