三個數中尋找最大值的5種方法-C語言實現

寫在前面:這裏是小王成長日誌,一名在校大學生,想在學習之餘將自己的學習筆記分享出來,記錄自己的成長軌跡,幫助可能需要的人。歡迎關注與留言。

某年某月某日,老師給我們佈置了一個極其笨拙的方法用來求三個數中的最大值,還在最後讓我們找其他方法,這就讓我瞬間上了頭!
在這裏插入圖片描述

第一種-使用三元運算符
如名字表示的三元運算符需要三個操作數。
語法爲:條件表達式?表達式1:表達式2。
說明:問號前面的位置是判斷的條件,判斷結果爲bool型,爲true時調用表達式1,爲false時調用表達式2。
其邏輯爲:“如果條件表達式成立或者滿足則執行表達式1,否則執行第二個。”常用在設置默認值,例如某個值不一定存在,則判斷這個值是否存在,不存在給默認值(表達式2)。
這題我們的思路也是一樣,在這裏我們先用三元運算符求出兩個數的最大值,然後用這個最大值與第三個數比較得出真正的最大值。

#include <stdio.h>
int main()
{
    int a, b, c;
    printf("請輸入a,b,c");
    scanf("%d %d %d", &a, &b, &c);
    
    // 1.三元運算符
    int n = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
    printf("%d", n);
    
    return 0;
}



第二種-調用函數
其實調用的函數實際上又可以有多種寫法,但是這裏就不展開了,基本就是這裏的方法變成兩個數求最大值套進去,相信各位聰明的看官一定能輕鬆理解的。

#include <stdio.h>
int main()
{
	int a, b, c;
    printf("請輸入a,b,c");
    scanf("%d %d %d", &a, &b, &c);

    // 2.調用函數
    int m=judge(judge(a,b),c);
    printf("%d", m);
} 
   
int judge(int a, int b)
{
    return (a > b) ? a : b;
}

第三種-使用中間變量儲存最大值

// 3.使用中間變量儲存最大值
#include <stdio.h>
int main()
{
    int a, b, c;
    printf("請輸入a,b,c");
    scanf("%d %d %d", &a, &b, &c);
	
	int t = 0;
    if (a > b)
        t = a;
    else
        t = b;
    if (c > t)
        t = c; //t爲最大值
    printf("%d", c);
} 
  

第四種-方法3的改進版-使用a儲存最大值

// 4.方法3的改進版-使用a儲存最大值
#include <stdio.h>
int main()
{
	int a, b, c;
    printf("請輸入a,b,c");
    scanf("%d %d %d", &a, &b, &c);
	
    if (a<b)
    	a=b;
    if (a<c)
    	a=c;//a值爲最大值
    printf("%d",a);
} 
  

第五種-使用&&防止if嵌套

 // 5.使用&&防止if嵌套
#include <stdio.h>
int main()
{
    int a, b, c;
    printf("請輸入a,b,c");
    scanf("%d %d %d", &a, &b, &c);

    int max;
    if (a > b && a > c)
        max = a;
    else if
        max = b;
    else
        max = c;

    printf("%d",max);
} 
  

都看到這裏了,各位哥哥姐姐叔叔阿姨給小王點個贊 關個注 留個言吧,和小王一起成長吧,你們的關注是對我最大的支持。
有事沒事進來看看吧 : 小王的博客目錄索引
更多計算機網絡優質博客看這 : 計算機網絡專欄博客索引


如果以上內容有任何不準確或遺漏之處,或者你有更好的意見,就在下面留個言讓我知道吧-我會盡我所能來回答。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章