vlambda博客
学习文章列表

干货 | 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.变量常见类型

干货 | C语言系列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。

(点击空白处查看完整程序)


干货 | C语言系列2——程序结构与变量














参考资料:《算法笔记》


我担心我写的太细

又担心写得不够细

如果有什么想法,请后台和我聊~


赵姐的小屋,

等你关注~