我们先来写一个程序,打印英里与公里之间的对应关系表。公式:1 mile=1.61 km
程序如下:
#include
/* print Mile to Kilometre table*/
main() {
float mile, kilometre;
int lower = 0;//lower limit
int upper = 1000;//upper limit
int step = 30;//step size
printf("Mile Kilometre\n");
mile = lower;
while (mile <= upper) {
kilometre = 1.61 * mile;
printf("%3.0f %6.1f\n", mile, kilometre);
mile = mile + step;
}
}
复制代码
在 CLion 中按下 shift + F10 进行编译运行代码哦O(∩_∩)O~
如果在 Clion 中出现 error: ld returned 1 exit status, 可能是因为之前程序还在运行导致的,只要关闭这个程序,重新执行即可。
输出结果:
下面我们对这段示例代码进行分析:
/* print Mile to Kilometre table*/
复制代码
/* */ 表示多行注释;// 表示单行注释;注释之间的字符序列会被编译器忽略。 良好的注释,使得程序更便于理解。
float mile, kilometre;
复制代码
所有变量都必须先声明后使用,通常在函数起始处声明变量。声明是由类型名与变量名组成。
类型名
说明
short
短整型
int
整型
long
长整型
char
字符型
float
单精度浮点型
double
双精度浮点型
这些数据类型的大小取决于具体机器。
int lower = 0;//lower limit
int upper = 1000;//upper limit
int step = 30;//step size
复制代码
这里在定义变量的同时,为它们设定了初始值。
while (mile <= upper) {
...
}
复制代码
正确的缩进以及保留适当的空格,可以有效地提升程序的易读性。在 CLion 中,可以使用 ctrl + shift + L,对代码进行排版美化。建议每行只书写一条语句。
printf("%3.0f %6.1f\n", mile, kilometre);
复制代码printf 是格式化输出函数。
printf 的第一个参数是待打印字符串,其中每一个百分号表示后续参数(第二个参数、第三个参数,以此类推)的替换位置,这些参数必须在类型与数目上相匹配;其余部分是打印格式。
ANSI 标准定义了 printf 函数的行为。
%3.0f 表示待打印的浮点数至少占 3 个字符,不包括小数点与小数。
%6.1f 表示待打印的浮点数至少占 6 个字符,包括小数点与 1 位小数。
格式
说明
%d
整数
%f
浮点数
%o
八进制数
%x
十六进制数
%c
字符
%s
字符串
%%
百分号本身
mile = lower;
复制代码如果某个算术运算符的所有操作数均为整型,那么直接执行整型运算。
如果某个算术运算符一边为整型,另一边为浮点型(如上代码所示),那么在开始运算之前,整型操作数会被转化为浮点型。
现在让我们编写一个打印从英里到公里的对照表吧:
#include
/* print kilometre to mile table*/
main() {
float mile, kilometre;
int lower = 0;//lower limit
int upper = 1000;//upper limit
int step = 30;//step size
printf("Mile Kilometre\n");
kilometre = lower;
while (kilometre <= upper) {
mile = kilometre / 1.61;
printf("%3.0f %6.1f\n", kilometre, mile);
kilometre = kilometre + step;
}
复制代码
输出结果:
原理相同,只不过这次是以“公里”作为递增项和范围限制的对象而已O(∩_∩)O~