我們先來寫一個程序,打印英里與公里之間的對應關系表。公式:1 mile=1.61 km
程序如下:
#include <stdio.h>/* print Mile to Kilometre table*/
main() {float mile, kilometre;int lower = 0;//lower limitint upper = 1000;//upper limitint step = 30;//step sizeprintf("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 limitint upper = 1000;//upper limitint step = 30;//step sizeprintf("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~