【问题标题】:pow(i,4) in c giving runtime errorc中的pow(i,4)给出运行时错误
【发布时间】:2014-08-28 15:30:54
【问题描述】:

我有一个程序,我试图找到 no 的四次方之和,直到 n 值

#include<stdio.h>
#include<math.h>
void main()
{
    int a,i=1,sum=0;
    scanf("%d",&a);
    do
    {
        sum+=pow(i,4);
        i++;
    }while(i<=a);
    printf("%d",sum);
}

当我运行上面它给出 运行时错误 “浮点:堆栈下溢” 我只想使用 pow() 函数。如果我使用 (i*i*i*i) 它将起作用。 我正在使用 turbo c++ 4.5,并且在 使用 f7 进行跟踪时显示错误。请帮忙!

【问题讨论】:

  • a 的最小值是多少?
  • 确保 a 按预期设置。 if (1 != scanf("%d",&amp;a)) Error();.
  • 你能告诉我们你为a输入了什么吗?
  • 使用调试器或在sum+=pow(i,4); 之前添加printf("%d %d %d\n",a,i,sum); 以了解错误发生的条件。
  • 任一1)函数签名是问题,尝试int main(int argc, char *argv[])并在末尾添加return 0;。或 2) 此处发布的代码不是真正的代码。或 3) 你有编译器/库问题。

标签: c runtime-error pow


【解决方案1】:

你必须让main()返回一个intint main(void)

http://ideone.com/7HVbGv

在这里您可以看到您的程序有效。如果将其更改为 void main() 并删除 return 0;,则会在 main 结束时出现运行时错误。

您还应该寻找现代编译器。 Turbo C++ 4.5 已经 20 岁了。

http://en.wikipedia.org/wiki/Turbo_C%2B%2B 甚至维基百科都说Turbo C++ was a C++ compiler... 而不是Turbo C++ is a C++ compiler...

【讨论】:

  • 我怎样才能把图片放在这里评论,..我想插入输出图片,。
  • @user2714940 你不能。不要这样做。在您的帖子中发布错误/输出消息而不是发布图片
  • 谢谢,...上面说的对!我是新来的,不知道!但我不能投票赞成 ans,因为我没有 15 个声誉,所以我添加了答案。
【解决方案2】:

感谢大家的回复! 它只是在在线编译器中更改为 int main() 但是,在 turbo c++ 中,数学库存在一些问题。

【讨论】:

  • “它只是在在线编译器中更改为 int main()”和您的评论“不,先生!我再次从该块复制代码并执行了代码。”不一致。请详细说明。
【解决方案3】:

你试过了吗 sum+=((int)pow(i,4)); 代替 sum+=pow(i,4);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-14
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2022-09-23
    相关资源
    最近更新 更多