首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编写一个函数int max_of_four(int a,int b,int c,int d),它读取四个参数并返回其中最大的参数。

编写一个函数int max_of_four(int a,int b,int c,int d),它读取四个参数并返回其中最大的参数。
EN

Stack Overflow用户
提问于 2022-10-09 08:04:02
回答 4查看 1.2K关注 0票数 0
代码语言:javascript
运行
复制
#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个数字中找出最大的数目。我的密码怎么了?为什么它没有显示正确的输出?请告诉我我做错了什么,并请改正。

EN

回答 4

Stack Overflow用户

发布于 2022-10-09 08:08:20

您的函数max_of_four不是返回最大值,而是打印一个数字并返回0。

在某些数字相同的情况下,代码的逻辑也是错误的(您可能希望>=而不是>来处理这个问题)。

作为提示,如果有一个函数max(a, b)返回两个数字的最大值,则可以找到四个数字的最大值:

代码语言:javascript
运行
复制
int max_of_four(int a, int b, int c, int d) {
    return max(max(a, b), max(c, d));
}

这可能对你有帮助。

票数 3
EN

Stack Overflow用户

发布于 2022-10-09 08:47:37

Please tell me what I am doing wrong and please correct it.

问题是,您试图编写过于复杂的复杂代码。

下面是一个非常简单的函数重写(将4个值的最大值返回给调用者)。

代码语言:javascript
运行
复制
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就很少有机会让你感到沮丧。

票数 0
EN

Stack Overflow用户

发布于 2022-10-09 08:57:40

根据问题标题

编写一个函数int max_of_four(int a,int b,int c,int d),它读取四个参数并返回其中最大的参数。

函数必须返回最大值,但函数返回0。

代码语言:javascript
运行
复制
int max_of_four(int a, int b, int c, int d)
{
    //...
    return 0;
}

此外,如果至少有两个参数具有最大值,则函数将不输出任何参数。

例如,该函数可以通过以下方式查找。

代码语言:javascript
运行
复制
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;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74003060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档