我是编程新手。我的问题是,如何将用户输入的数字转换为等效分数?因此,假设用户被要求输入两个数字以获得某些成本。我如何将分数转换为分数?下面是我输出到屏幕的内容以及用户输入的内容的示例。我有一个问题,将50转换为1/2,依此类推我需要转换为分数的任何其他数字。对于此计划,我们不允许使用浮动或双打。
输出:
ex) What is the pound-cost of oranges?
Dollar part: *4*
Cent part: *50*
The oranges are *4 + 1/2* dollars per pound.
代码:
int x;
int H;
printf("What is the pound-cost of oranges?\n");
printf("Dollar part first: ");
scanf("%d", &x);
printf("Cent part next: ");
scanf("%d", &B);
//B= sqrt(B/100);
B= B/100;
printf("...so oranges are %d + %d dollars per pound\n", x, B);
//This part right here should be displaying 4 + 1/2 or whatever number the user enters.
我遇到的问题是,我不确定如何在不使用双打和浮点数的情况下将固定点中的分数(如50)转换为分数(1/2)。
答案 0 :(得分:1)
设c为分数,则分数的分子为c/pgcd(c,100)
,分母为100/(pgcd(100,c))