LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1600|回复: 9

求助:关于gcc中乘方运算pow如何调用

[复制链接]
发表于 2004-1-24 21:08:48 | 显示全部楼层 |阅读模式
编了一段程序,其中用到乘方运算pow.原来程序在TC下编译运行比较顺利,但是到了gcc中,编译时提示不认pow,打开/usr/include/math.h,没有找到pow的定义.但是在TC的include/math.h中有pow的定义.
哪位知道:gcc下如果要用乘方运算pow,应该在c程序头中调用哪些.h文件?
谢过先.

gcc 3.2  /Redhat linux 9
 楼主| 发表于 2004-1-24 21:09:34 | 显示全部楼层
另外再问个比较弱的问题:浮点数在打印输出时如何规定字长?比如要小数点后面只保留两位,在printf中该如何定义?
发表于 2004-1-24 21:29:30 | 显示全部楼层
对于第二个问题给你个例子:
[PHP]
main()
{
    float a=12345.678912;
    printf("%0.3f\n",a);
}
[/PHP]
结果是  12345.679
发表于 2004-1-24 22:02:50 | 显示全部楼层
第一个问题我不知道在linux该调用什么,因为我把linux删了给你下面的解决方案
[PHP]
#include<stdio.h>

template<class T> inline
T pow(T value,int count)
{
        T re=1;
        for(int i=0;i<count;i++) re*=value;
        return (re);
}

main()
{
        float a=3.453;
        int b=2;
        a=pow(a,3);
        printf("%f\n",a);
        b=pow(b,10);
        printf("%d\n",b);
}
[/PHP]

结果如下:
41.170841
1024
发表于 2004-1-24 23:47:01 | 显示全部楼层
gcc -o a.out a.c -lm
发表于 2004-1-24 23:50:22 | 显示全部楼层

请问wanglej兄

最初由 wanglej 发表
gcc -o a.out a.c -lm


这是什么意思啊?能解释一下么?
发表于 2004-1-25 00:02:14 | 显示全部楼层

回复: 请问wanglej兄

最初由 coolflyr_reg 发表
这是什么意思啊?能解释一下么?


好象在论坛见过的,但我不记得了。现在很忙,兄弟你自己搜搜吧
发表于 2004-1-25 05:48:20 | 显示全部楼层
-lm 是连接math库,gcc默认不连接,必须自己指定
发表于 2004-1-25 13:08:36 | 显示全部楼层
呵呵,谢谢斑竹
想建议斑竹在本版置顶一个GCC的详细说明,这样会方便点啊
发表于 2004-1-25 23:03:43 | 显示全部楼层
最初由 coolflyr_reg 发表

[PHP]
#include<stdio.h>

template<class T> inline
T pow(T value,int count)
{
        T re=1;
        for(int i=0;i<count;i++) re*=value;
        return (re);
}

main()
{
        float a=3.453;
        int b=2;
        a=pow(a,3);
        printf("%f\n",a);
        b=pow(b,10);
        printf("%d\n",b);
}
[/PHP]

结果如下:
41.170841
1024

这段代码包含了C++模板,要用C++编译器执行
g++ filename.cpp -o filename
以下是标准模板库的简介:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=86454
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表