#include <stdio.h>
/*
Add `int max_of_four(int a, int b, int c, int d)` here.
*/
int max_of_four(int a, int b, int c, int d);
int main()
{
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
int ans = max_of_four(a, b, c, d);
printf("%d", ans);
return 0;
}
int max_of_four(int a, int b, int c, int d)
{
if (a > b && a > c && a > d) {
printf("%d\n", a);
} else
if (b > a && b > c && b > d) {
printf("%d\n", b);
} else
if (c > a && c > b && c > d) {
printf("%d\n", c);
} else {
printf("%d\n", d);
}
return 0;
}在这个问题中,我们必须用函数在4个数字中找出最大的数目。我的密码怎么了?为什么它没有显示正确的输出?请告诉我我做错了什么,并请改正。
发布于 2022-10-09 08:08:20
您的函数max_of_four不是返回最大值,而是打印一个数字并返回0。
在某些数字相同的情况下,代码的逻辑也是错误的(您可能希望>=而不是>来处理这个问题)。
作为提示,如果有一个函数max(a, b)返回两个数字的最大值,则可以找到四个数字的最大值:
int max_of_four(int a, int b, int c, int d) {
return max(max(a, b), max(c, d));
}这可能对你有帮助。
发布于 2022-10-09 08:47:37
Please tell me what I am doing wrong and please correct it.
问题是,您试图编写过于复杂的复杂代码。
下面是一个非常简单的函数重写(将4个值的最大值返回给调用者)。
int max_of_four( int a, int b, int c, int d ) {
int max = a;
if( b > max ) max = b;
if( c > max ) max = c;
if( d > max ) max = d;
return max;
}保持简单,bug就很少有机会让你感到沮丧。
发布于 2022-10-09 08:57:40
根据问题标题
编写一个函数int max_of_four(int a,int b,int c,int d),它读取四个参数并返回其中最大的参数。
函数必须返回最大值,但函数返回0。
int max_of_four(int a, int b, int c, int d)
{
//...
return 0;
}此外,如果至少有两个参数具有最大值,则函数将不输出任何参数。
例如,该函数可以通过以下方式查找。
int max_of_four(int a, int b, int c, int d)
{
if ( !( a < b ) && !( a < c ) && !( a < d ) )
{
return a;
}
else if ( !( b < c ) && !( b < d ) )
{
return b;
}
else if ( !( c < d ) )
{
return c;
}
else
{
return d;
}
}https://stackoverflow.com/questions/74003060
复制相似问题