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;
}