Relational operators in C are used to compare values and return a result as true (1) or false (0).
These operators allow you to compare variables and expressions, making them essential for decision-making in conditions, loops, and logical expressions.
1. Relational Operators in C
Here are the main relational operators in C:
Operator | Symbol | Description | Example |
---|---|---|---|
Equal to | == | Returns true if both operands are equal | a == b |
Not equal to | != | Returns true if operands are not equal | a != b |
Greater than | > | Returns true if the first operand is greater than the second | a > b |
Less than | < | Returns true if the first operand is less than the second | a < b |
Greater than or equal to | >= | Returns true if the first operand is greater than or equal to the second | a >= b |
Less than or equal to | <= | Returns true if the first operand is less than or equal to the second | a <= b |
2. Example: Basic Comparison of Two Variables
In this example, we use each relational operator to compare two integer variables and display the results.
#include <stdio.h> int main() { int a = 10, b = 20; printf("a = %d, b = %d\n", a, b); printf("a == b: %d\n", a == b); // Equal to printf("a != b: %d\n", a != b); // Not equal to printf("a > b: %d\n", a > b); // Greater than printf("a < b: %d\n", a < b); // Less than printf("a >= b: %d\n", a >= b); // Greater than or equal to printf("a <= b: %d\n", a <= b); // Less than or equal to return 0; }
Output:
a = 10, b = 20 a == b: 0 a != b: 1 a > b: 0 a < b: 1 a >= b: 0 a <= b: 1
Explanation:
- The relational expressions evaluate to either 1 (true) or 0 (false).
- a == b is false (0) because 10 is not equal to 20.
- a < b is true (1) because 10 is less than 20.
3. Using Relational Operators in if Statements
Relational operators are frequently used in if statements to make decisions based on comparisons.
#include <stdio.h> int main() { int age = 18; if (age >= 18) { printf("You are eligible to vote.\n"); } else { printf("You are not eligible to vote.\n"); } return 0; }
In this example:
- age >= 18 checks if age is at least 18.
- If the condition is true, it prints “You are eligible to vote.” Otherwise, it prints “You are not eligible to vote.”
Output (assuming age is 18):
You are eligible to vote.
4. Using Relational Operators in while Loops
Relational operators can be used in loops to control how many times the loop will execute.
#include <stdio.h> int main() { int count = 1; printf("Counting from 1 to 5:\n"); while (count <= 5) { printf("%d\n", count); count++; } return 0; }
In this example:
- count <= 5 is the condition for the while loop.
- The loop continues as long as count is less than or equal to 5.
Output:
Counting from 1 to 5: 1 2 3 4 5
5. Using Relational Operators in Complex Conditions
You can combine multiple relational expressions in complex conditions using logical operators like && (and) and || (or).
#include <stdio.h> int main() { int age = 25; float income = 40000; if (age >= 18 && income >= 30000) { printf("You are eligible for the loan.\n"); } else { printf("You are not eligible for the loan.\n"); } return 0; }
In this example:
- The condition age >= 18 && income >= 30000 checks if both conditions are true.
- If age is 18 or older and income is at least 30000, it prints “You are eligible for the loan.”
Output (assuming age is 25 and income is 40000):
You are eligible for the loan.
6. Comparing Floating-Point Numbers
When comparing floating-point numbers, precision issues can arise, so it’s best to use a small tolerance value instead of direct comparison.
#include <stdio.h> #include <math.h> int main() { float x = 0.1 * 10; float y = 1.0; float epsilon = 0.00001; // Small tolerance for comparison if (fabs(x - y) < epsilon) { printf("x and y are approximately equal.\n"); } else { printf("x and y are not equal.\n"); } return 0; }
In this example:
- fabs(x – y) < epsilon checks if the difference between x and y is less than a small tolerance (epsilon), indicating they are approximately equal.
- This method avoids issues due to the limited precision of floating-point numbers.
Output:
x and y are approximately equal.
7. Using Relational Operators in Arrays and Loops
Relational operators are useful when working with arrays, such as finding the maximum or minimum value.
Example: Finding the Maximum Value in an Array
#include <stdio.h> int main() { int numbers[] = {3, 15, 7, 9, 20, 12}; int max = numbers[0]; for (int i = 1; i < 6; i++) { if (numbers[i] > max) { max = numbers[i]; } } printf("The maximum value is: %d\n", max); return 0; }
In this example:
- if (numbers[i] > max) checks if each element is greater than the current max.
- If true, max is updated to that element.
Output:
The maximum value is: 20
8. Comparing Characters with Relational Operators
In C, characters are represented by their ASCII values, so you can use relational operators to compare characters.
#include <stdio.h> int main() { char char1 = 'A'; char char2 = 'B'; if (char1 < char2) { printf("'%c' comes before '%c' in ASCII.\n", char1, char2); } else { printf("'%c' comes after '%c' in ASCII.\n", char1, char2); } return 0; }
In this example:
- The ASCII value of ‘A’ (65) is less than that of ‘B’ (66).
- char1 < char2 evaluates as true.
Output:
'A' comes before 'B' in ASCII.
9. Summary Table of Relational Operators
Operator | Description | Example | Result (assuming a = 10 and b = 20) |
---|---|---|---|
== | Equal to | a == b | 0 (false) |
!= | Not equal to | a != b | 1 (true) |
> | Greater than | a > b | 0 (false) |
< | Less than | a < b | 1 (true) |
>= | Greater than or equal to | a >= b | 0 (false) |
<= | Less than or equal to | a <= b | 1 (true) |
10. Complete Program Example: Comparing Values
This program takes two integer inputs and uses relational operators to compare them, displaying the results.
#include <stdio.h> int main() { int num1, num2; printf("Enter first number: "); scanf("%d", &num1); printf("Enter second number: "); scanf("%d", &num2); printf("\nComparison Results:\n"); printf("%d == %d: %d\n", num1, num2, num 1 == num2); printf("%d != %d: %d\n", num1, num2, num1 != num2); printf("%d > %d: %d\n", num1, num2, num1 > num2); printf("%d < %d: %d\n", num1, num2, num1 < num2); printf("%d >= %d: %d\n", num1, num2, num1 >= num2); printf("%d <= %d: %d\n", num1, num2, num1 <= num2); return 0; }
Example Input/Output:
For inputs 10 and 20:
Enter first number: 10 Enter second number: 20 Comparison Results: 10 == 20: 0 10 != 20: 1 10 > 20: 0 10 < 20: 1 10 >= 20: 0 10 <= 20: 1
This tutorial covers relational operators in C, showing how to use them in various contexts such as conditions, loops, arrays, and character comparisons.