분자 num1과 num2, 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
문제를 해결하기 위해 다음과 같은 접근 방식을 사용합니다.
//바드메 리쿵가
알고리즘
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; }; // Get max of the two fractions Fraction greater(Fraction first, Fraction sec){ //check if the result is in negative then the //second fraction is greater else first is greater 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