说说 C 语言中的变量与算术表达式

版权声明:如果喜欢,就收藏吧 O(∩_∩)O~ https://blog.csdn.net/deniro_li/article/details/82829594

我们先来写一个程序,打印英里与公里之间的对应关系表。公式: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~

猜你喜欢

转载自blog.csdn.net/deniro_li/article/details/82829594