我们先来写一个程序,打印英里与公里之间的对应关系表。公式:1 mile=1.61 km
程序如下:
#include <stdio.h>
/* 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 <stdio.h>
/* 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~
网友评论