//方法一:單個函數中實現,使用了if-else,思路最簡單,但是時間、空間復雜度較高
思路:定義除a,c,c外再定義x,y兩個變量用於存放每一次比較后較大的數,最后輸出最大的y
1 #include<stdio.h> 2 int main() 3 { 4 int a,b,c; 5 int x,m; 6 7 scanf("%d %d %d",&a,&b,&c); 8 if(a>b) 9 x=a; 10 else 11 x=b; 12 if(x>c) 13 m=x; 14 else 15 m=c; 16 printf("max=%d\n",m); 17 18 return 0; 19 }
//方法二:定義一個max函數,在主函數中調用
思路:主函數中語句簡單,max函數類似上面
1 #include<stdio.h> 2 int main() 3 { 4 int max(int a,int b,int c); //對被調函數max的聲明 5 int i,j,k,n; 6 scanf("%d %d %d",&i,&j,&k); 7 n=max(i,j,k); //調用max函數 8 printf("max=%d\n",n); 9 return 0; 10 } 11 12 //求三個整數中最大的max函數 13 int max(int a,int b,int c) 14 { 15 int x,m; 16 17 if(a>b) 18 x=a; 19 else 20 x=b; 21 22 if(x>c) 23 m=x; 24 else 25 m=c; 26 27 return m; 28 }
//方法三:只多定義一個max變量用於存放最大值
思路:此為最優解,時間、空間復雜度均最優,可多細細領會
1 #include<stdio.h> 2 int main(){ 3 int a,b,c,max; 4 scanf("%d %d %d",&a,&b,&c); 5 max=a; 6 if(max<b) 7 max=b; 8 if(max<c) 9 max=c; 10 printf("最大的數是%d:",max); 11 return 0; 12 }
//方法四:兩次調用max(a,b) max((a,b),c)
代碼略