程序比较C中的两个分数
给定两个具有分子nume1和nume2以及deno1和deno2作为它们各自分母的分数,任务是比较两个分数并找出更大的分数。就像我们有分数1/2和2/3,较高的分数是2/3,因为1/2的值是0.5,而2/3的值是0.66667,这是较高的。
输入值
first.nume = 2, first.deno = 3 second.nume = 4, second.deno = 3
输出结果
4/3
说明
2/3 = 0.66667 < 4/3 = 1.33333
输入值
first.nume = 1, first.deno = 2 second.nume = 4, second.deno = 3
输出结果
4/3
解决问题的方法如下
//baadmelikhunga
算法
Start Declare a struct Fraction with elements nume, deno In function Fraction greater(Fraction first, Fraction sec) Step 1→ Declare and Initialize t Y = first.nume * sec.deno - first.deno * sec.nume Step 2→ Return (Y > 0) ? first : sec In function int main() Step 1→ Declare Fraction first = { 4, 5 } Step 2→Fraction sec = { 3, 4 } Step 3→ Fraction res = greater(first, sec) Step 4→ Print res.nume, res.deno Stop
示例
#include <stdio.h> struct Fraction { int nume, deno; }; //获取两个分数的最大值 Fraction greater(Fraction first, Fraction sec){ //检查结果是否为负,然后 //第二个分数更大,否则第一个更大 int Y = first.nume * sec.deno - first.deno * sec.nume; return (Y > 0) ? first : sec; } int main(){ Fraction first = { 4, 5 }; Fraction sec = { 3, 4 }; Fraction res = greater(first, sec); printf("The greater fraction is: %d/%d\n", res.nume, res.deno); return 0; }
输出结果
如果运行上面的代码,它将生成以下输出-
The greater fraction is: 4/5