将用户输入的数字转换为c中的小数当量数

时间:2015-04-06 22:50:55

标签: c

我是编程新手。我的问题是,如何将用户输入的数字转换为等效分数?因此,假设用户被要求输入两个数字以获得某些成本。我如何将分数转换为分数?下面是我输出到屏幕的内容以及用户输入的内容的示例。我有一个问题,将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)。

1 个答案:

答案 0 :(得分:1)

设c为分数,则分数的分子为c/pgcd(c,100),分母为100/(pgcd(100,c))

相关问题