#include stdio.h<stdio.h>

#include&stdio.h&_百度知道#include&stdio.h& #include&stdlib.h& #include&string.h& in
#include&stdio.h&#include&stdlib.h&double print_s(int a){double p1[50],p2[50],Sn[50];int i = 0;p1[0] = 2;p2[0] = 1;Sn[0] = p1[0] / p2[0];for (i = 1; i & i++){p1[i] = p1[i - 1] + p2[i - 1];p2[i] = p1[i] - p2[i - 1];Sn[i] = Sn[i - 1] + (p1[i] / p2[i]);}return (Sn[a - 1]);}int main(){printf(&请输入您要打印这个分数序列前几项和:&);scanf(&%d&,&a);printf(&本序列前%d项和Sn=%2.5f/n&,a,print_s(a));system(&pause&);return 0;}&
无相关信息
最新教程周点击榜
微信扫一扫C语言编程: #include &stdio.h& int main() { s_百度知道这个程序错在哪? #include &stdio.h& #include &stdlib.h& #_百度知道编写C语言程序时必须有#include&stdio.h&这一行吗?为什么有时候不需要? - AF知识网
编写C语言程序时必须有#include&stdio.h&这一行吗?为什么有时候不需要?
更新时间: 编辑:admin
补充一下…stdio 全称,standard input&output.h的意思是 头文件,header file刚学的话可以不深究这个东西,只要记住:如果要用到标准函数库中的输入输出函数,应该在文本模块的开头加上这个#include 是一种预编译指令。C 语言的做法是,在真正处理的语义之前,先做一遍预编译,包括去掉注释和处理预编译指令。#include 这个指令的作用是把另一个文件的内容引入到本文件中,在许多情况下这个功能可以方便代码的管理,也节省了磁盘空间。#include&stdio.h& 指令的作用是引入 stdio.h 文件,它是 C 语言标准库中的一个文件,声明了跟标准输入输出相关的函数和变量。你也可以自己声明你需要的 stdio.h 里面的函数,效果是一样的。main 函数被称为是入口函数,但是 C 语言毕竟只是产生代码的工具,你完全可以从别处开始执行(取决于你怎么利用这些代码)。例如在 Windows 编程中我们通常使用 WinMain 函数作为程序的入口。再比如在编写时,常规意义上的入口并不存在,我们要使用额外的手段定义代码从何处开始执行。前面的答案已经解释了。那我就从授以渔的方式解释一遍。1. 小明打算写一个回声机程序,它的功能很简单:用户从键盘输入什么话,它就在屏幕回响什么话。小明一琢磨:这个程序大体上细分为两个步骤:从键盘读取输入序列(比如一个一个字符地读取输入序列),把它们临时存放到内存某个位置读取内存位置M,把字符输出到屏幕上小明再三审视,觉得很严谨了,他决定动手了,他选择C语言来完成这个项目。2. C作为古老的编程语言,它遵从的是面向过程式的编程范式,也就是一开始小明一开始思考的步骤,步步为营,一步一个脚印。这是很符合人类大脑的最简单的行事逻辑的。
那么第一步首先是,处理输入序列。小明又开始琢磨了,他发现原来这件事还可以再细分:敲击键盘的动作触发某种电信号电信号以某种机制告知CPUCPU以某种方式把电信号进行转换把转换的信号以某种二进制格式,存放于内存某个位置3.小明开始有些挠头了,他没学过电路知识,也不懂CPU响应外部信号的机制,如何编写。 幸好,一番搜索查找资料,他发现:原来这些东西早就有人做好了,这是操作系统的功能之一:它抽象了复杂的机器逻辑,然后提供了一件叫做系统调用的东西, 他在写程序时只要调用就可以。4.但他发现:没有什么公开的函数供他调用,以实现第2步中的分别四个小步骤啊。这不坑爹嘛!!!于是,小明又一番搜索,发现:原来, 这种系统调用还是相当抽象繁复的,一般人难以理解,更别说使用了,而且它也不符合人们的思维逻辑,人类只有输入一个东西,再把它原样输出这个概念,哪有这些乱七八糟的什么电路,CPU的概念啊。 进一步的说,他发现抽象是有层次的, 原来存在着更高级抽象, 人们可以直接使用来从键盘获取输入!5. 这个更高级抽象就是C语言中的标准输入输出库. 好家伙, 从这名字看,貌似输出这个库也帮他搞定了! 善于思考的小明又想多一些:这种所谓的库,不仅屏蔽了细节,因为不同的键盘,不同的CPU,可能处理这些信号转换的方法是不同的。用一个库来封装,只提供给外界声明好的确定的接口,外界就可以拿它来用了,而根本不用关心底层是如何实现的!要不换一台机器, 小明就得又大费周章去重写代码。 真妙!另外, 计算机作为一种机器,它也存在接口,叫做人机界面,接收外界的输入及向外界输出。这种行为应该是十分常见的,用一个库把这个行为封装起来,事半功倍啊!造福人人的啊喂!6. 小明真正开始编写代码了,他发现, 原来所有前面的工作只要一句话:#include&stdio.h&.
那个编译器啊,我要的功能在一个叫stdio(STanDard Input / Output)的库里, 我要用它。
至于这个叫stdio库是做什么的,它已经提供了一份清单了,叫stdio.h, 里面记录了它提供给外界的所有接口。我等下要用一个叫scanf 和 printf 的接口,这个接口的声明就在这个stdio.h文件里,你去核对下, 要是我用错了,你告诉我一声。 编译器:
好的,没问题!7. 就此刻为止,小明已经获得了他想要的。至于后面的故事嘛,编译器又去跟一个叫链接器的家伙通信(当然以他们之间能理解的协议),告诉链接器,去把一个叫stdio库的家伙中的 scanf和 printf代码以某种方式链接进最后的可执行文件里。8. 回顾整个过程,小明的计划:步骤清晰(每一个步骤做什么很清楚)分划干净(每个步骤只做一件事,各个步骤间通过协定的协议通信,比如1与2之间的协议是把某种击键电信号转换为内存中对应的字符,2与3之间的协议是把内存中的存放的字符转换为屏幕上一个方块的点阵图案)于是,不经意间,小明已经完成了对面向过程编程(8.1)与模块化(8.2)的一次体悟.小明的思考过程涉及了两个重要方面,而这不仅是编程模式的思考,更是人类对这个复杂外界环境的思考与抽象。 而编程,不过是以另一种语言的方式再现这种思考而已!stdio.h提供了很多函数,诸如scanf读取用户输入,printf将内存显示到屏幕上;main一般要写为int/void main,假如只写main,那么在C89标准中编译(对应微软的Visual Studio系列编译器)只会报警,可以成功编译;但在C99标准后,使用gcc编译(默认编译选项)是会出错的。include stdio.h非必需。stdio.h定义了不少输入输出的标准函数比如说printf,大部分程序都会用上,所以你感觉好像必须有了。有些程序不需要任何标准输入输出语句,比如说单片机上的程序。# inciude&stdio.h& 不是必须的,这个是为了包含标准输入输出接口的头文件viod main或int main 如果你不是exe程序也不是必须的,其原因是exe需要入口函数来运行代码,当然你也可以在链接阶段手动指定入口函数的名称。dll中也有dllmain这样的入口函数,当然如果你不需要运行任何代码,你也可以不指定入口函数对于0基础的人来说“必须有#include&stdio.h&这一行以及main”这个说法是对的但如果较真的话这种说法并不是绝对的虽然大家都口口声声说必须要加,但是偏要不加的话,编译器(VC++ 6.0)也只是报警告,如:warning C4013: 'printf' assuming extern returning int程序仍然可以运行,且运行结果正确。哪位知道更深入的东西来解释为什么它只是报警告,而不会像大家想象的会报错误,而且还能正常运行?在C语言中void main();这种写法本身就是错误的,入口函数的返回值必须是 int 类型。这种写法可能在 VC 中没有问题,但绝不符合规范。事实上,《K&R C》中,是这样声明入口函数的:main();因为在 C99 之前,省略返回值类型意味着返回值为 int 类型。但在 C99 中,main 函数只有两种标准形式(此句说法错误,感谢 @薛非 提出)在 C99 中列举了两种 main 函数的形式:int main(void);和int main(int argc, char *argv[]);第一种中的 void 不能省略,因为在C语言中,省略与否完全是两种含义。C99 中又有or in some other implementation-defined manner但不论 main 函数的形参如何变化,其返回值一定是 int 类型的。更多详细内容:What are the valid signatures for C's main() function?
或许你还想知道这些
Copyright (C) 2014
All Rights Reserved.
网站内容均转载网络,内容仅供参考,不能作为依据。

我要回帖

更多关于 lt cdata gt 的文章

 

随机推荐