求最小值的方法有很多,下面给出了三种方法:
法一: 在函数中输入 a , b , c 三个数,然后判断 a 是否同时大于 b 和 c ,b 、c 以此类推。程序如下:(这种方法是最简单直观的)
#includeint Ismin1(int a, int b, int c) { if (a <= b && a <= c) { return a; } if (b <= a && b <= c) { return b; } if (c <= a && c <= b) { return c; } } int main() { printf("%dn", Ismin1(1, 2, 3)); //结果为:1 printf("%dn", Ismin1(7, 4, 8)); //结果为:4 printf("%dn", Ismin1(7, 8, 5)); //结果为:5 }
调试结果如下:
法二: 在函数中输入 a , b , c 三个数,然后判断,若 a 的值大于 b 的值则把 a 的值赋给 b, b 的值赋给 a (此处需要借助中间变量 tmp ) 这是为了保证每次都让 a 成为最小的值;接着再把最小值的 a 与 c 作比较,若 a 的值大于 c 的值则同上。这样下来 a 就成了最小的值。
#includeint IsMin(int a, int b, int c) { int tmp = 0; if(a>=b) { tmp = a; a = b; b = tmp; } //这一步执行完之后,a就是当前的最小值。 if (a >= c) //再判断当前最小值a与c的关系,若c小则把c的值给a { tmp = a; a = c; c = tmp; } return a; } int main() { printf("%dn", IsMin(5, 7, 4)); //结果为:4 printf("%dn", IsMin(1, 2, 4)); //结果为:1 printf("%dn", IsMin(8, 2, 4)); //结果为:2 }
调试结果如下:
法三:该方法与法二类似,但比二的程序简单。
#includeint main() { int a, b, c, tmp; printf("请输入三个数:n"); scanf_s("%d%d%d", &a, &b, &c); if (a < b) { tmp = a; } else { tmp = b; } if (tmp < c) { printf("%dn",tmp); } else { printf("%dn", c); } return 0; }
调试结果如下:



