1. 程式人生 > >C語言,輸入abc三個整數,並從大到小排序輸出和“找出三個數中最大的數”的中間變數的用法的區別

C語言,輸入abc三個整數,並從大到小排序輸出和“找出三個數中最大的數”的中間變數的用法的區別

共同點:都是中間變數,都可以重複拿來做中轉站使用

不同點:排序的題目中,中間變數只是做中轉站作兩個變數交換值用來,並不是要用來儲存最終要輸出的值

             而找出最大數或者最小數的題目中,中間變數不但做交換用的中轉站,還要儲存程式最終要輸出的值

            也可以從程式的最終輸出printf()語句中看出區別

1、輸入abc三個整數,並從大到小排序輸出中間變數只是做中轉站,不是用來儲存最終要輸出的值

//輸入abc三個整數,並從大到小排序輸出

#include<stdio.h>

#include<stdlib.h>

int main(){

    int a, b, c; //用三個變數a, b, c分別儲存最大的值,第二大的值,最小的值

    int t; //中間變數,每次交換中都可以拿來用,是可以重複拿來用的,目的只是交換兩個變數的值,而不是用來儲存最終要輸出的值

    printf("Please type three integers:\n");

    scanf("%d %d %d", &a, &b, &c);

    //先確保a中放的是三個數中最大的值(a要分別與b 和c 比較)

    if(a<b){ 

        t = a;

        a = b;

        b = t;

    }

    if(a<c){

        t = a;

        a = c;

        c = t;

    }

    //確保b中放的是剩下2個數b和c中最大的值(即第二大的數)

    if(b<c){

        t = b;

        b = c;

        c = t;

    }

    //a,b,c已經從大到小排好序了,輸出即可

    printf("%d, %d, %d", a, b, c);

    return 0;

}

2、【輸入三個整數,找出三個數中最大的數】中間變數要用來儲存最終輸出的值,並且程式最後輸出其儲存的值

//輸入3個數,找出最大的數

#include<stdio.h>

#include<stdlib.h>

int main(){

    int a, b, c;

    int max; //中間變數,儲存三個數abc中最大的數,不但要做中轉站來使用,用來儲存最終輸出的值,並且程式最後輸出其儲存的值

    printf("Please input three integers:\n");

    scanf("%d %d %d", &a, &b, &c);

//先處理第一個和第二個數a和b,找出哪個最大並放到max中間變數中

    if(a > b){ //首選找出前面兩個數中最大的那個

        max = a;

    }else{  //a > b 不成立的情況 ——> 即 b >= a

        max = b;

    }

//找出了前兩個數ab中最大的那個數並放到max中後,進一步考慮max和第三個數的關係

    if(c > max){  

        max = c;

    }

    printf("最大的數是:%d", max);

    return 0;

}