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