干货 | C语言系列2——程序结构与变量
本期总结
1、一个程序的结构——头文件与主函数;
2、变量——变量定义与类型;
3、例题。
关于使用软件,常用OJ平台请看上一期↓
本期从一个实例说起,请看下面这段程序:
从该段简单的程序可以看出,一个程序通常由两部分组成:头文件和主函数。
1.头文件
在上述程序中,头文件stdio.h是标准输入输出库,只要程序中有输入输出,就需要这个头文件。因此,在大多数情况下,这都是必不可少的头文件。除此之外,还有一些常用的函数,也需要头文件。如math.h里有很多数学函数,string.h里有很多处理字符串的函数,stdlib.h里有分配存储空间的函数等等,因此,在需要用到这些函数时,一定要记得在开头包含头文件。
此外,在c++的标准中,头文件有等价写法,如stdio.h可以等价为cstdio,math.h可以等价为cmath,因此,在参考一些示例程序时,应该理解它们的含义。所以,自己在OJ平台上做题提交代码的时候,可以直接选择C++编译,因为C++向下兼容C,且更加实用。
2.主函数
主函数是一个程序的入口,每个程序有且只有一个主函数。既然有主函数,也会有其他非主函数,其他函数可以是一个个小小的模块,当主函数需要的时候调用,不需要的时候不调用。这与之前在讲单片机的模块化编程是一样的道理。只不过一个是汇编语言,一个是高级语言而已,但是它们的思想,都是一样的。
在C语言中,变量的定义是很重要的,因为我们的程序需要不同的变量来协同工作。
1.变量的定义
(1)变量类型 变量名;
(2)变量类型 变量名 = 初值;
两种方式都可以,一个是之后再赋初值,一个是将就赋初值。但是要特别注意一种情况:需要定义一个整型数组,且里面的初始值都为0。那么就不能这样写:
int a[10];
a[10] = {0};
应该这样写:
int a[10] = {0};
变量名一般来说可以随便选取,但是要注意以下条件:
(1)不能是C语言标识符。如for , while, do等等;
(2)只能是字母或者下划线开头,数字不能作为开头,除第一位以外,其他位为数字,字母或下划线;
(3)大小写要区分,如A和a是表示两个不同的变量。
2.变量常见类型
(1)整型
分为短整型short int, 整型int, 长整型long long,短整型不常用。对于整型int来说,占用32bit,即4bytes,只需记住绝对值在10^9范围内的都可以用int;长整型long long,占用64bit,即8bytes,绝对值在10^18范围内用long long。
%d是int型的输入输出格式,%ld是long long型的输入输出格式。
(2)浮点型
分为单精度(float)和双精度(double),其中float型的有效精度为6~7位,double型的有效精度为15~16位(上面的位指小数点后的位数)。因此,对于浮点型来说,选择double型就可以。
%f是float和double的输入输出格式。对于double型来说,%lf也可以。
(3)字符型
char定义的是单个字符,因此,如果是字符串,一定要定义字符数组呀。字符是以ASCII码值形式在程序中存储的,因此,一定不要随便给char型字符赋数字,除非你知道相应字符的ASCII码值,但是那样duck不必哈哈,直接加单引号就好。如:
char c = 'x';
%c是char型(单个字符)的输入输出格式。%s是char型(字符串)的输入输出格式。
(4)布尔型
bool型常用来作为判断变量,所以常和if语句连用,只有两个值,非0即1,也就是true和false。
题目来源:codeup
http://codeup.cn/problem.php?cid=100000566&pid=4
题目:
求一元二次方程ax2+bx+c=0的根,三个系数a, b, c由键盘输入,且a不能为0,且保证b2-4ac>0。
程序中所涉及的变量均为double类型。
输入:
以空格分隔的一元二次方程的三个系数,双精度double类型
输出:
分行输出两个根如下(注意末尾的换行):
r1=第一个根
r2=第二个根
结果输出时,宽度占7位,其中小数部分2位。
1、输入的时候,不要因为题目中有空格,就在scanf的格式输入里空空格,不需要!因为%d会自己丢掉空格;
2、最后的输出需要注意一下,宽度占7位,其中小数部分为2位的输出格式表示为:%7.2f或%7.2lf。
(点击空白处查看完整程序)
▼
参考资料:《算法笔记》
我担心我写的太细
又担心写得不够细
如果有什么想法,请后台和我聊~
赵姐的小屋,
等你关注~