| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1137 人关注过本帖
标题:请大家看看这个程序为什么不能编译?
取消只看楼主 加入收藏
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请大家看看这个程序为什么不能编译?
我是新手,学习c语言已经一个多月了,刚学到函数,这是讲的嵌套函数。
用的编译器是dev-c++

这是一本书中用牛顿迭代法求平方根的程序,原书比较老
编译时也不提示哪一行有错误,就是下面

出现提示: cannot find -lobjc  
  ld returned 1 exit status  

谢谢各位的回答
我按各位的都改了,提示还是一样,我也不知道是咋回事
有位大大说用vc没有问题,就是改一点,不过我不明白为什么要那么改
我一直都是用的dev,这个简单好用,有办法能让它通过吗?
刚刚来到这个论坛,没啥分,但是我会给的:)
 



#include "stdio.h"



main()

{
    float squ_rt(float x);  
    float a ;
    printf("input a=");
    scanf("%f",&a);
    if(a<0)
        printf("negative argument to square root\n");
    else
        printf("square_root(%f)=%f\n",a,squ_rt(a));
    getchar();
}

float squ_rt(float x)
{
    float abs_value(float x);   
    float epsilon,guess;
    epsilon=1e-5;
    guess=1.0;
    while(abs_value(guess*guess-x)>=epsilon)
        guess=(x/guess+guess)/2.0;
    return(guess);
}

float abs_value(float x){

    if (x<0)
        x=-x;
    return(x);}



[ 本帖最后由 绝对的菜 于 2010-9-5 11:30 编辑 ]
搜索更多相关主题的帖子: 编译 
2010-09-05 09:37
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
收藏
得分:0 
以下是引用S_12s在2010-9-5 10:05:50的发言:

这在VC6.0下没大什么问题,就有两个警告……你把 epsilon=1e-5;把成  epsilon=1e-5f;,  guess=(x/guess+guess)/2.0;改成 guess=(x/guess+guess)/2.0f;就可以了……
为什么要加f呢?我觉得既然已经定义了是浮点型实数,应该没必要加了,另外我还没装vc,确实可以通过吗?
那dev的问题又出在哪里呢?
2010-09-05 11:19
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
收藏
得分:0 
以下是引用cosdos在2010-9-5 10:30:31的发言:

#include

// 正确的主函数定义
int main(void)  
{
    return 0;
}

int main(int argc, char *argv[])
{
    return 0;
}
是吧,但是我加了这个也还是通不过
2010-09-05 11:20
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
收藏
得分:0 
以下是引用自由战士89在2010-9-5 11:38:16的发言:

VC6.0编译下能通过啊,可能是递归函数调用未先声明吧
每一个都声明了的啊
2010-09-05 11:59
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
收藏
得分:0 
谢谢各位,只要vc能过,说明程序没有太问题,可能是dev的问题。。我结帖了
2010-09-05 12:18
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
收藏
得分:0 
以下是引用S_12s在2010-9-5 12:07:25的发言:

你把你的.c文件放在和你安装DEV--C++的文件夹下,我这样编译过了……
确实,我没有注意这个。。谢谢你:)新手学点东西真不容易啊
我把分子给你一半了:)
2010-09-05 12:25
绝对的菜
Rank: 2
等 级:论坛游民
帖 子:35
专家分:27
注 册:2010-9-5
收藏
得分:0 
以下是引用cacker在2010-9-5 12:11:22的发言:

加f是告诉编译器 这是个单精度数     编译器都是用默认值的

比如你函数写的是main()    这样有点编译器默认返回值是void  而vc就是int


你不加f  编译器就把当double双精度数看···这是默认的
谢谢。我也给你一半分了:)
2010-09-05 12:25
快速回复:请大家看看这个程序为什么不能编译?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018168 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved