//方法一:单个函数中实现,使用了if-else,思路最简单,但是时间、空间复杂度较高
思路:定义除a,c,c外再定义x,y两个变量用于存放每一次比较后较大的数,最后输出最大的y
1 #include2 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 #include2 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 #include2 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)
代码略