浮點型變量:常數中帶有小數點的叫做浮點型
以下用for循環寫一個攝氏度和華氏度的轉換的C程序 【見 http://www.linuxidc.com/Linux/2013-08/88513.htm 】
[[email protected]]# cat forxh.c
#include <stdio.h> //宏定義
main()
{
float i; //聲明一個浮點型的變量i
printf("華氏溫度 攝氏溫度\n"); //先打印一個華式溫度和攝氏溫度的對應標題
for (i = 0.0; i <= 300.0; i = i + 20.0) { //開始for循環,先i=0,然後如果i<=300就執行循環體,i的值每次加20,直到i的值不滿足i <= 300.0條件就推出
printf("%3.1f\t=\t%3.1f\n", i, (5.0 / 9.0) * (i - 32.0)); //直接調用打印函數,將表達式計算得結果後打印出來
}
}
首先說for循環for後邊的圓擴弧中是循環的參數和條件
裡邊一共三段,由封號隔開,第一段
i=0;
首先初始化變量的值,進入循環,第二段
i<=300;
循環的執行條件,如果過這個條件滿足,則循環繼續,如果不滿組,則退出,第三部分
i = i + 20;
以上20是溫度的步長,每次增加20,所有的運算符都開以再次處使用例如:
for (i = 512; i >=4; i = i / 2) {.....}
從以上代碼看,float是一種變量類型,聲明的變量值必須如n.n,也就是帶有小數點的常數,也就是俗稱的小數。
i是一個浮點型變量,它於int類型的值相運算,編譯器自動會將int的值轉換成float類型的值,例如一個浮點型的1.5和一個整形的3相加,編譯器會自動將3轉換成3.0,然後再和1.5相加
所以此處筆者直接全部用浮點型的常量來代替了
在for循環中的循環體只有一個printf函數:
printf("%3.1f\t=\t%3.1f\n", i, (5.0 / 9.0) * (i - 32.0));
在C語言中按正常的運算順序來計算print函數擴弧內的表達式,擴弧優先級最高,然後*號,最後printf將直接打印結果
這樣的程序書寫方式就比:
[[email protected]]# cat sheshidu.c
#include <stdio.h>
main()
{
float i, S;
float F_max, F_min, buchang;
F_min = 0;
F_max = 300;
buchang = 20;
i = F_min;
printf("華氏溫度 攝氏溫度\n");
while ( i <= F_max) {
S = 5 * ( i - 32 ) / 9;
printf("%3.1f\t=\t%3.1f\n", i, S);
i = i + buchang;
}
}
while循環的直觀多了,易讀性也高,變量也好組織!
然後下邊在提一點常量的定義,看如下代碼
[[email protected]]# cat fhcl.c
#include <stdio.h>
#define MAX_VLAN 300.0 //符號常量定義
#define MIN_VLAN 0.0
#define BC_VLAN 20.0
main()
{
float i;
printf("華氏溫度 攝氏溫度\n");
for (i = MIN_VLAN; i <= MAX_VLAN; i = i + BC_VLAN) { //從符號常量取值進行循環
printf("%3.1f\t=\t%3.1f\n", i, (5.0 / 9.0) * (i - 32.0));
}
}
第一個for循環裡雖然東西少,但是用了不少“幻量”這種幻量會給以後讀程序的人造成很大的困擾,誰也不知的它是個神碼值,只知道那是一個常量
如果用符號變量定義的話在開頭定義好一個符號常量,然後下次讀程序和改程序只要看這個個地方這個量前邊的符號,即可知道它的含義,改成需只要改這一處即可,如果幻量的話就得逐個的查找替換了
定義方式是:
#define 符號 常量 //這種形式定義
一般將符號常量的定義放在頭文件的下邊和程序的開頭部分!