abcソート


3つのデータa,b,cがあり、キーボードで入力され、プログラムを記述して小さいものから大きいものに並べ替えられます.
#include
using namespace std;
int main()
{
     
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a>=b&&a>=c)
    {
     
        if(b<=c) swap(b,c);
    }
    else if(b>=a&&b>=c)
           {
     
               swap(a,b);
               if(b<=c) swap(b,c);
            }
    else if(c>=a&&c>=b)
    {
     
        swap(a,c);
        if(b<=c) swap(b,c);
    }
    printf("%d %d %d",c,b,a);
    return 0;
}


考え方:三つの状況を分析する:
  • aの格納数が最も大きく、b,cを比較する.cメモリの数が最小であれば、直接出力する.bの数が最小であれば、b,cを交換する.
  • bの格納数が最も大きく、a,bを交換する.後続比較b,c,同上;
  • cの格納数が最も大きく、a,cを交換する.後続比較b,c,同上;最後にc,b,aを統一的に出力する.