先審題,乍一看這道題十分簡單。
我們只需要將題目中所給出的10個數字一一比較,並將比較出的較大的數字存入臨時變量並輸出這個臨時變量即可。
那么我們先設出一個數組arr[10],用來儲存題目中要求的十個整數。
那么這里我們給出一個簡單的1~10的數組(打亂大小順序)來進行程序測試。
數組為:2, 5, 3, 4, 1, 6, 10, 8, 9, 7
代碼如下:
#include<stdio.h> int main() { int a[] = { 2, 5, 3, 4, 1, 6, 10, 8, 9, 7 }, i, max = a[0]; for (i = 0; i < 10; i++) { if (max < a[i]) max = a[i]; } printf("max num is %d\n", max); system("pause"); return 0; }
當然我們並不是只有這一種方法進行大小比較。
在之前的數據結構及算法的學習中,我們還了解過冒泡排序這種算法。
它一樣也可以完成我們本次的題目要求。
這里我們先簡單的介紹一下冒泡排序的思想:
1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。
3、針對所有的元素重復以上的步驟,除了最后一個。
4、持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
了解了冒泡排序后,代碼就變得比較簡單了。
這里我們直接給出利用冒泡排序算法寫出的程序,代碼如下:
#include<stdio.h> int main() { int arr[] = { 2, 5, 3, 4, 1, 6, 10, 8, 9, 7 }; int i,j,t; for (i = 0; i < 9; i++) { for (j = 0; j<9 - i; j++) { if (arr[j]>arr[j + 1]) { t = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = t; } } } printf("max num is %d\n", arr[9]); system("pause"); return 0; }
最后附上程序執行的結果: