linux下c语言编程无法编译的问题,在线等答案
程序源代码:(正弦采样程序)#include<stdio.h>#include"math.h"#definePI3.141592653longintfun1(double...
程序源代码:(正弦采样程序)
#include <stdio.h>
#include "math.h"
#define PI 3.141592653
long int fun1(double a);
main()
{
double a,b;
long int m,d=0;
for(a=0;a<180;a++)
{
b=128+127*sin(a*PI/180);
printf("b=%lf ",b);
m=fun1(b);
printf("%ld:%ld\n",d,m);
d++;
}
}
/*以下为四舍五入程序
输入:双精度浮点数a
输出:无小数位的四舍五入后的整数值 */
long int fun1(double a)
{
double b;
int c;
b=a*10;
c=(int) b%10;
if(c>4) return (long) a+1;
else return (long) a;
}
在linux下无法编译,提示代码:
In file included from abc.c:2:0:
math.h:107:1: error: stray ‘\32’ in program
什么原因?怎么处理?
求大大们帮忙,在线等。。
注:此程序在windows下编译已完全通过。。。 展开
#include <stdio.h>
#include "math.h"
#define PI 3.141592653
long int fun1(double a);
main()
{
double a,b;
long int m,d=0;
for(a=0;a<180;a++)
{
b=128+127*sin(a*PI/180);
printf("b=%lf ",b);
m=fun1(b);
printf("%ld:%ld\n",d,m);
d++;
}
}
/*以下为四舍五入程序
输入:双精度浮点数a
输出:无小数位的四舍五入后的整数值 */
long int fun1(double a)
{
double b;
int c;
b=a*10;
c=(int) b%10;
if(c>4) return (long) a+1;
else return (long) a;
}
在linux下无法编译,提示代码:
In file included from abc.c:2:0:
math.h:107:1: error: stray ‘\32’ in program
什么原因?怎么处理?
求大大们帮忙,在线等。。
注:此程序在windows下编译已完全通过。。。 展开
4个回答
展开全部
同学,你好,我刚才用虚拟机试了一下你的程序,
本身是没有什么错误
但是linux系统,不会自动加载math.h头函数
因此你编译的时候需要自己加上这样编译就行
例如你的文件名字是file.c
gcc -o file file.c -lm
我这样可以通过,你试一试
本身是没有什么错误
但是linux系统,不会自动加载math.h头函数
因此你编译的时候需要自己加上这样编译就行
例如你的文件名字是file.c
gcc -o file file.c -lm
我这样可以通过,你试一试
更多追问追答
追问
还是不行呢?-lm是什么意思?用来加载math.h吗?
那哪个stdio.h会自动加载吗?
追答
stdio.h可以自动加载,
-l 加载类库,m是math类库的缩写
-lm是加载math类库的
我的试了可以啊,我没有改你的程序,你用的什么ubuntu还是redhat,还是其他的,你再看看
展开全部
可以编过
你是不是没有加 -lm
gcc -o abc abc.c -lm
如果还不行 #include<math.h>
你是不是没有加 -lm
gcc -o abc abc.c -lm
如果还不行 #include<math.h>
追问
确实没有加,但是试了试,我加了还是不行,同样的错误代码。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
更多追问追答
追问
跟你输得是同样的命令。就是有那个代码。。
root@linyuchen:/media/sf_VirtualBox_Share# gcc -o abc abc.c -lm
In file included from abc.c:2:0:
math.h:107:1: error: stray ‘\32’ in program
root@linyuchen:/media/sf_VirtualBox_Share#
追答
你用的Linux是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gcc -o file file.c -lm
这个命令可通过编译,
另外你的四舍五入写的太麻烦了,下面一句就搞掂了!
long int fun1(double a)
{
return (long)(a + 0.5);
}
这个命令可通过编译,
另外你的四舍五入写的太麻烦了,下面一句就搞掂了!
long int fun1(double a)
{
return (long)(a + 0.5);
}
追问
就是哈,谢谢你的程序!
哪个程序是我刚毕业的时候做毕业设计写的了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询