关于C语言 文件预处理 头文件文件包含的问题,怎么编写自己的头文件啊?

谭浩强的课本上关于这个内容只是提到了一下,例子都没有,哪位大虾给复制个例子看看,感激不尽另外我编的错在哪里?编译出来出现乱码了主文件#include<stdio.h>#i... 谭浩强的课本上关于这个内容只是提到了一下,例子都没有,哪位大虾给复制个例子看看,感激不尽
另外 我编的错在哪里?编译出来出现乱码了
主文件
#include<stdio.h>
#include<math.h>
#include"sqrt.cpp"
void main()
{double a;
scanf("%f",&a);
printf("%f开方后的数是%f",a,f(a));
}

sqrt.cpp
#include<stdio.h>
#include<math.h>
double f(double a)
{a=sqrt(a);
return(a);
}

还有哪些可以省略的地方吗?
展开
 我来答
望穿秋水待伊人
2011-11-10 · TA获得超过644个赞
知道小有建树答主
回答量:708
采纳率:100%
帮助的人:803万
展开全部
把你的cpp改.h,
再把main函数上面的 #include<stdio.h>
#include<math.h> 这两个去掉就行了。
包含文件的格式不能为cpp
另外这样只能保证编译不出错,你的程序 本身还是有问题的。
scanf("%f",&a);
这一句,因为a是double型的,所以要改成 scanf("%lf",&a);
不然是不会得到正确结果 的。
追问
可以把cpp改成.c吧?文件包含意思是不是就可以看做直接把例子中sqrt.h所有的内容放在头文件的部分?函数声明啊变量什么的在所有文件中只要出现一次就可以了?
追答
在C++里是.h,在C里是.c,这个就相当 是把那些代码直接 写到主文件里
但是变量不要声明在头文件里,因为头文件可以防止 重复包含,但是变量 不能防止重定义,除非你确定你的头文件只会被包含一次,而且不会被间接包含。
kutpbpb
2011-11-10 · TA获得超过528个赞
知道小有建树答主
回答量:332
采纳率:0%
帮助的人:386万
展开全部
//注:错误有两处,省略的有一处,在下面已经列举,该正后的程序可以正确运行.
//希望kutpbpb的回答能对你有所帮助!

sqrt.h //头文件扩展名应该是.h
#include<stdio.h>
#include<math.h>
double f(double a)
{a=sqrt(a);
return(a);
}

#include<stdio.h>
#include<math.h> //这两个头文件因为已经由头文件包含过了,所以可以省略
#include"sqrt.h" //这里也要跟改正后的一致
void main()
{double a;
scanf("%lf",&a); //这里输入double类型的数,控制格式应为lf
printf("%f开方后的数是%f",a,f(a));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
6190201
2011-11-10 · TA获得超过266个赞
知道答主
回答量:93
采纳率:0%
帮助的人:48.9万
展开全部
sqrt.cpp
double f(double a)
{a=sqrt(a);
return(a);
}
第二个文件改成如上,就是你重复包含头文件了,我知发现了这个错误,不知道还有别的没
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2011-11-10 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3271万
展开全部
sqrt.cpp之后的内容应该在名为“sqrt.cpp”的文件中,该文件与主文件放在同一个文件夹中。
追问
是这样的啊,可是乱码啦.........
追答
主文件内容只包括:
include
#include
#include"sqrt.cpp"
void main()
{double a;
scanf("%f",&a);
printf("%f开方后的数是%f",a,f(a));
}

sqrt.cpp文件的内容只包括:
#include
#include
double f(double a)
{a=sqrt(a);
return(a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式