Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C에서 두 분수를 비교하는 프로그램


분자 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