gpt4 book ai didi

c - 函数调用的参数太多,我该怎么办?

转载 作者:行者123 更新时间:2023-11-30 21:37:29 25 4
gpt4 key购买 nike

我正在解决教科书中的一个问题,我需要制作一个三角形角度计算器。我习惯了 java,但我还没有 100% 使用 C,我不明白其中的逻辑。

#include <stdio.h>

static float angleB;
static float angleA;

float remainingAngle(float answer)
{
float answer= angleA+angleB;
//redefinition of answer
return 0;
}
//CANT TOUCH FROM HERE TO END
int main(int argc, const char * argv[]) {
float angleA = 30.0;
float angleB = 60.0;
float angleC = remainingAngle(angleA,angleB);
// to many arguments to function call (referring to angleC)
printf("the third angle is %.2f\n",angleC);
return 0;
} //END CANT TOUCH

我不知道在这里做什么。

最佳答案

在你的函数定义中

float remainingAngle(float answer)

函数remainingAngle()接受一个参数。

OTOH,在你的函数调用中

remainingAngle(angleA,angleB);

您正在传递两个参数。

提供的参数数量和类型应与函数定义中的参数列表匹配。

<小时/>

也就是说,您的代码是错误的。

  • 第 1 点。您的局部变量将影响全局变量。也许这不是你想要的。改变

    float angleA = 30.0;
    float angleB = 60.0;

     angleA = 30.0;
    angleB = 60.0;
  • 第 2 点。函数

    float remainingAngle(float answer)
    {
    float answer= angleA+angleB;
    //redefinition of answer
    return 0;
    }

    逻辑上是错误的。应该是这样

    float remainingAngle(void)
    {
    float answer= angleA+angleB;
    return answer;
    }

    应该这样称呼

    float angleC = remainingAngle();
<小时/>

编辑后:

根据您的要求,您可以这样做

float remainingAngle(float angleA, float angleB)
{
float answer= angleA+angleB;
return answer;
}

但是,这使得全局变量毫无用处。

关于c - 函数调用的参数太多,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com