C程式設計——從鍵盤輸入多個數據,並輸出其中第二大的資料
阿新 • • 發佈:2018-11-25
1、注:第二大數小於最大數
2、程式
#include <stdio.h> int getmax2(int *,int); int main() { int a[99] = {0}; int count = 0; printf ("Please input numbers:"); do{ scanf ("%d",&a[count]); count++; }while( getchar() != '\n');//換行前,從鍵盤獲取資料 printf ("Max2 = %d\n",getmax2(a,count)); return 0; } int getmax2(int *array,int len) { int i; int max1 = array[0]; int max2 = 0; if (NULL == array || len <= 0 || array[0] == array[1])//第二大值必須小於最大值 { return -1; } for (i = 1; i < len; i++) { if (len == 2)//如果只輸入兩個數時,需另行判斷 { if (array[0] < array[1]) { max2 = array[0]; } else { max2 = array[1]; } break; } if (array[i] > max1)//array[i]>最大值為max1時 { max2 = max1;//在最大值存入max1前,將原最大值存入max2 max1 = array[i]; } else { if (array[i] > max2 && array[i] < max1)//若第二大值等於max1,則捨棄 { max2 = array[i]; } } } return max2; }
3、結果
Please input numbers:1 2 33 44 2 4 44 55 77 77 55
Max2 = 55