注册 登录
编程论坛 C++教室

一个程序为什么出现 ld returned 1 exit status?

tryingtrying 发布于 2008-07-01 20:15, 54822 次点击
刚开始学,还在摸索中,请帮忙看一下这个程序为什么会出现  Permission denied ,  ld returned 1 exit status 的错误。(刚开始试还是好的,突然编译就出现了这行字)
程序能有什么改善的方法,望大虾们指教。。。
#include<iostream>
using namespace std;
float F(float x);
float P(float x);
int main()
{
    float x;
    x=3.0;
    while (F(x)<0.000000001);
    { x=x-F(x)/P(x);
          cout<<x<<endl;
          }
}
float F(float x)
{
      float m;
        m=x*x-9;
        return m;
        }
float P(float x)
{
      float p1;
        p1=2*x;
        return p1;
        }

[[it] 本帖最后由 tryingtrying 于 2008-7-1 20:32 编辑 [/it]]
5 回复
#2
很远的那颗星2008-07-01 20:35
x=3.0;
    while (F(x)<0.000000001);    //这里多了分号
    { x=x-F(x)/P(x);
          cout<<x<<endl;
          }


还有你这个是死循环.
#3
tryingtrying2008-07-01 20:37
谢谢。
为什么叫死循环?如果让程序按照递推式计算下去怎么写呢?
#4
很远的那颗星2008-07-01 20:53
为什么叫死循环?
//就是你while循环没有结束条件.
while (F(x)<0.000000001)   //你这句永远都成立,所以它会一直运行下去.
    { x=x-F(x)/P(x);
          cout<<x<<endl;
          }


如果让程序按照递推式计算下去怎么写呢?

不是很明白你的意思,我不知你写这个程序的目的何在,所以我不明白你想要产生怎样的结果.
#5
tryingtrying2008-07-01 20:57
就是想让这串数列最后收敛...
递推式就是x[n+1]=x[n]-f(x[n])/p(x[n])
想让程序输出x1,x2...x[n]
#6
很远的那颗星2008-07-01 21:10
你可以在while循环中定义数列收敛值,比如K,当你所求X与K之间相差极小时,就跳出循环.
while(1)
{
  x=x-F(x)/P(x);
  cout<<x<<endl;
  if ((x-K)<1e-6)     //K是数列收敛值.
     break;           //跳出循环.
}
1