Warm tip: This article is reproduced from stackoverflow.com, please click
c

Simpler way of sorting three numbers

发布于 2020-03-27 15:45:41

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(); 
}    
Questioner
newbie
Viewed
37
41 2020-01-04 10:36
if (a > c)
   swap(a, c);

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

//Now the smallest element is the 1st one. Just check the 2nd and 3rd

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

Note: Swap changes the values of two variables.