- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Binary Search for Rational Numbers without using floating point arithmetic in C program

In this problem, we are given a sorted array of rational numbers. and we have to search the given element using binary search algorithm for this rational number array without using floating point arithmetic.

A **Rational number** is number represented in the form p/q where both p and q are integers. For example, ⅔, ⅕.

**Binary search** is searching technique that works by finding the middle of the array for finding the element.

for finding the element using binary search from a sorted array of rational numbers, where floating point arithmetic are not allowed. We will compare the numerators and denominators to find which element is Greater or which one is element that is to be found.

## Example

Let's create a program for this,

#include <stdio.h> struct Rational { int p; int q; }; int compare(struct Rational a, struct Rational b) { if (a.p * b.q == a.q * b.p) return 0; if (a.p * b.q > a.q * b.p) return 1; return -1; } int binarySearch(struct Rational arr[], int l, int r, struct Rational x) { if (r >= l) { int mid = l + (r - l)/2; if (compare(arr[mid], x) == 0) return mid; if (compare(arr[mid], x) > 0) return binarySearch(arr, l, mid-1, x); return binarySearch(arr, mid+1, r, x); } return -1; } int main() { struct Rational arr[] = {{1, 4}, {2, 3}, {3, 2}, {7, 2}}; struct Rational x = {3, 2}; int n = sizeof(arr)/sizeof(arr[0]); printf("Element found at index %d", binarySearch(arr, 0, n-1, x)); }

## Output

Element found at index 2

- Related Articles
- C Program to Multiply two Floating Point Numbers?
- Decimal fixed point and floating point arithmetic in Python
- Program to find GCD of floating point numbers in C++
- Binary Search using pthread in C Program?
- Java program to multiply given floating point numbers
- Java Program to Multiply Two Floating-Point Numbers
- Swift Program to Multiply Two Floating-Point Numbers
- Haskell program to multiply two floating point numbers
- Kotlin Program to Multiply Two Floating-Point Numbers
- Signed floating point numbers
- Python Program to Implement Binary Search without Recursion
- Python Program for Binary Search
- 8085 program for Binary search
- C++ Program to Search for an Element in a Binary Search Tree
- C Program for Binary Search (Recursive and Iterative)?

Advertisements