【问题标题】:C compilation errors [closed]C编译错误[关闭]
【发布时间】:2013-04-23 11:01:10
【问题描述】:

我必须用 C 编写一个程序来计算并显示以下表达式:

P=1*2*(1/3)*4*5*(1/6)

我尝试运行此代码(这是整个代码)但我无法编译它,因为它在 C++ 的第四行和第十一行显示错误。我做错了什么?

   #include <stdio.h>

    int i,n,f=1;
    for(i=1;i<=n;i++)
    {
        if(i%3==0)
           f=f/i;
        else
           f=f*i;
    }
    printf("%d\n", f);
    return 0;

我不能在这里写错误,因为它们太多了..

【问题讨论】:

  • main() 在哪里??????
  • 至少放一些错误!
  • 现在它显示:参数 f 已初始化,“for”之前的语法错误

标签: c


【解决方案1】:

您缺少main() 函数的定义。此外,n 未初始化;你需要给它一个值。

#include <stdio.h>

int main(void)
{
    int i,n,f=1;
    for(i=1;i<=n;i++)
    {
        if(i%3==0)
            f=f/i;
        else
            f=f*i;
    }
    printf("%d\n", f);
    return 0;
}

【讨论】:

  • n 未初始化。:)
  • 嗯,这也是真的。 :)
  • +1 用于正确使用分号而不是滥用逗号。
  • 这不起作用。我认为我可能有逻辑错误..
  • 是的,首先要确保n 具有合理的价值。
【解决方案2】:

您可能需要将f 声明为float,我没有收到以下任何错误:

#include <stdio.h>

int main(void)
{
    int i,n;
    float f = 1;
    printf("Enter value of n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        if(i%3==0)
            f=f/i;
        else
            f=f*i;
    }
    printf("%f\n", f);
    return 0;
}

【讨论】:

  • n的值必须由用户给定!
  • 好的,你可以使用scanf。这没什么大不了的。
  • 您的代码中有一些错误。对于我输入的每个 n,我得到 138.27
  • 正确复制。它为不同的输入提供不同的值。 138.27 是 10。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
相关资源
最近更新 更多