newbie newbie - 3 months ago 9
C Question

Simpler way of sorting three numbers

Is there a simpler and better way to solve this problem because


  1. I used too many variables.

  2. I used so many
    if else
    statements

  3. I did this using the brute force method




Write a program that receives three integers as input and outputs the numbers in increasing order.

Do not use loop / array.


#include <stdio.h>
main(){
int no1;
int no2;
int no3;
int sto;
int hi;
int lo;

printf("Enter No. 1: ");
scanf("%d", &no1);
printf("Enter No. 2: ");
scanf("%d", &no2);
printf("Enter No. 3: ");
scanf("%d", &no3);

if (no1>no2) {
sto=no1;
lo=no2;
} else {
sto=no2;
lo=no1;
}
if (sto>no3) {
hi=sto;
if(lo>no3){
sto=lo;
lo=no3;
}else {
sto=no3;
}
}else hi=no3;

printf("LOWEST %d\n", lo);
printf("MIDDLE %d\n", sto);
printf("HIGHEST %d\n", hi);

getch();
}

Answer
if (a > c)
   swap(a, c)

if (a > b)
   swap(a, b)

//Now the smallest element is the first one. Just check the 2-nd and 3-rd

if (b > c)
   swap(b, c);

Note: Swap changes the values of two variables.

Comments