编写具有五个参数的函数minMax的定义。前三个参数是整数。最后两个由函数设置为前三个参数的最大值和最小值。该函数不返回值。
该功能可以按如下方式使用:
int a = 31,b = 5,c = 19 big,small; MINMAX(A,B,C,&安培;大,&安培;小); / *大现在是31 / / 小现在是5 * /
void minMax (int a, int b, int c, int *big, int *small) {
if (a > b && a > c)
*big = a;
else if (b>a && b>c)
*big = b;
else if (c>a && c>b)
*big = c;
if (a < b && a < c)
*small = a;
else if (b<a && b<c)
*small = b;
else if (c<a && c<b)
*small = c;
return;
}
说明: ⇒您的功能没有改变小的值。确保在功能中取消引用它。
常见错误: 确保你的if / else语句是正确的。 确保在每个语句的末尾都有分号。 确保为大小分配正确的值。
答案 0 :(得分:1)
如果3个数字a
,b
和c
都不同,那么您的代码应该可以正常运行。但是如果2(或甚至全部3)值相同,则会出现错误,因为您总是检查&#34;严格大于&#34;并且&#34;严格小于&#34;,即您使用的是>
和<
,而不是>=
和<=
。尝试使用= 31,B = 31,C = 31,您将看到既不会将值分配给*big
也不会分配给*small
。
答案 1 :(得分:0)
这个怎么样:
void minMax(int x, int y, int z, int * big, int * small)
{
*big = x;
if (y > *big)
{
*big = y;
}
if (z > *big)
{
*big = z;
}
*small = x;
if (y < *small)
{
*small = y;
}
if (z < *small)
{
*small = z;
}
}