高效比較數值大小

一、比較兩個數的大小

思路:兩個數的大小無外乎相等、大於、小於,所以一一比較即可。下面提供三種比較兩個數值的大小方法

**

其中第三種使用三目結構較爲高效

**

1、先判斷相等的情況:

main()
{
int a,b;
printf(“please input A,B:”);
scanf(“%d %d”,&a,&b);
if(a!=b)
{
  if(a>b)
   printf(“A>B\n”);
   else 
    printf(“A<B\n”);
}
else
printf(“A=B\n");
}

2、最後考慮相等情況:

main()
{
int a,b;
printf(“please input A,B:”);
scanf(“%d %d”,&a,&b);
if(a>b)
   printf(“A>B\n”);
else if(a<b)
   printf(“A<B\n”);
else
   printf(“A=B\n”);
}

3、使用三目結構,提高代碼的運行效率

main()
{
int a,b;
printf(“please input A,B:”);
scant(“%d %d,&a,&b”);
printf(“%s\n",(a==b)”A=B”:((a>b)?”A>B”:”A<B”));
}

二、比較三個數的大小

第二種使用if嵌套結構的方法較爲高效

1、使用for循環加數組(效率低)

main()
{
int a[3];
int i=0,j=0,k=0,max,min;
for(;i<3;i++)
     scant(“%d”,&a[i]);
max=min=a[0];
for(;j<3;j++)
  if(max<a[j])
      max=a[j];
for(;k<3;k++)
  if(min>a[k])
      min=a[k];
printf(“%d%d”,a[j],a[k]);
}

2、使用if嵌套語句(效率高)

main()
{
int a,b,c,max,min;
printf(“input three numbers:”);
scanf(“%d %d %d”,&a,&b,&c);
if(a>b)
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
if(max<c)
max=c;
else
if(min>c)
min=c;
printf(“max=%d\nmin=%d”,max,min);
}

三、對於實際開發過程中的數值比較問題

在實際開發過程中,我們往往不知道用戶輸入的需要比較數值的個數,所以使用數組可能有些問題,但可以強制用戶輸入自己輸入數值的個數,來爲數組的大小進行限制。

對於多個數字進行比較,上述方法有些不適用,一般情況下均使用for循環來進行比較數值大小。也可使用排序算法,將數值進行排序輸出,達到間接比較大小的目的。

發佈了19 篇原創文章 · 獲贊 36 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章