C Examples

C Program - Find Smallest Number among three Numbers



Three numbers x, y and z are given and the smallest number among these three numbers can be found out using below methods:

Method 1: Using If statement

In the example below, only if conditional statements are used.

#include <stdio.h>

static void smallest(int, int, int);

static void smallest(int x, int y, int z) {
  int min = x;
  if (x <= y && x <= z)
    {min = x;}
  if (y <= x && y <= z)
    {min = y;}
  if (z <= x && z <= y)
    {min = z;}
  printf("Smallest number among %i, %i and %i is: %i\n", 
          x, y, z, min);
}

int main() {
  smallest(100, 50, 25);
  smallest(50, 50, 25);
}

The above code will give the following output:

Smallest number among 100 , 50 and 25 is:  25
Smallest number among 50 , 50 and 25 is:  25

Method 2: Using If-else statement

It can also be solved using If-else conditional statements.

#include <stdio.h>

static void smallest(int, int, int);

static void smallest(int x, int y, int z) {
  int min = x;
  if (x <= y && x <= z)
    {min = x;}
  else if (y <= x && y <= z)
    {min = y;}
  else 
    {min = z;}
  printf("Smallest number among %i, %i and %i is: %i\n", 
          x, y, z, min);
}

int main() {
  smallest(100, 50, 25);
  smallest(50, 50, 25);
}

The above code will give the following output:

Smallest number among 100 , 50 and 25 is:  25
Smallest number among 50 , 50 and 25 is:  25

Method 3: Using Nested If-else statement

The above problem can also be solved using nested if-else conditional statements.

#include <stdio.h>

static void smallest(int, int, int);

static void smallest(int x, int y, int z) {
  int min = x;
  if (x <= y) {
    if(x <= z) 
      {min = x;}
    else
      {min = z;}
  } 
  else {
    if(y <= z) 
      {min = y;}
    else
      {min = z;}
  }
  printf("Smallest number among %i, %i and %i is: %i\n", 
          x, y, z, min);
}

int main() {
  smallest(100, 50, 25);
  smallest(50, 50, 25);
}

The above code will give the following output:

Smallest number among 100 , 50 and 25 is:  25
Smallest number among 50 , 50 and 25 is:  25

Method 4: Using ternary operator

The ternary operator can also be used here.

#include <stdio.h>

static void smallest(int, int, int);

static void smallest(int x, int y, int z) {
  int min = x;
  min = (x < y)? ((x < z)? x : z) : ((y < z)? y : z);
  printf("Smallest number among %i, %i and %i is: %i\n", 
          x, y, z, min);
}

int main() {
  smallest(100, 50, 25);
  smallest(50, 50, 25);
}

The above code will give the following output:

Smallest number among 100 , 50 and 25 is:  25
Smallest number among 50 , 50 and 25 is:  25