變量和表達式在C語言中隨處可見
現在就利用C語言來寫一個華氏溫度和攝氏溫度的對照表
華氏溫度和攝氏溫度的對應公式為:設施溫度=(5/9)(華氏溫度-32)
效果如下
[[email protected]]# ./sheshidu
華氏溫度 攝氏溫度
0 = -17
20 = -6
40 = 4
60 = 15
80 = 26
100 = 37
120 = 48
140 = 60
160 = 71
180 = 82
200 = 93
220 = 104
240 = 115
260 = 126
280 = 137
300 = 148
下邊是源代碼:
[[email protected]]# cat sheshidu.c
#include <stdio.h> //宏定義頭文件
main() //主main函數
{ //函數體
int i, S; //變量聲明第一處
int F_max, F_min, buchang; //變量聲明第二處
F_min = 0; //變量賦值
F_max = 300;
buchang = 20;
i = F_min; //變量賦值
printf("華氏溫度 攝氏溫度\n"); //打印函數
while ( i <= F_max) { //while循環的開始和循環條件
S = 5 * ( i - 32 ) / 9; //計算出攝氏溫度和華式溫度的對應關系
printf("%d\t=\t%d\n", i, S); //printf函數打印出i華氏溫度和S攝氏溫度
i = i + buchang; //步長,隔幾度算一次
} //循環體結束
} //main函數結束
第一個知識點 聲明
在C語言中,使用一個變量的時候,必須先聲明之
如:
int i, S;
此處是變量的聲明部分,將i,S兩個變量聲明成int類型
int為什麼要聲明?
因為C在調用變量之前,必須要有這個變量的存儲空間,聲明就是問系統申請這個變量的存儲空間
一個int類型的值需要多少內存空間?
按編譯器而定gcc一般是32位,那麼最大值是32個1,十進制是4294967295取值范圍應該是-2147483647~2147483647一共是4294967294再加一個0
win下的TC編譯器則是16位,那麼最大值是16個1,十進制為65535取值范圍是(65535-1)/2 一共是+/-的32767之間
64位的編譯器則int按以上規則推算
當然C語言的變量類型不止int一種以後有接觸到的現解決或者查看有關C語言變量聲明的資料,此處筆者只是按int類型來說明這個問題。
此處變量的聲明還有一個特點
int i,S;
一次聲明兩個變量i和S,在C語言中“,“英文的逗號,也是一種運算符,它的優先級最低,只是起到一個分隔的作用,以上聲明方式可寫成如下形式:
int i;
int S;
這個聲明效果和上述的聲明效果是一樣的,只是上述的易讀性高,簡單明了,所有在以後的代碼書寫中,沒有特殊意義的,都將如此聲明。
第二個知識點 賦值
變量賦值,變量,能夠變動的常量,叫做變量,如何變動?那就是賦值,如下:
F_min = 0; //變量賦值
F_max = 300;(1處)
buchang = 20;
i = F_min; (2處)
以上均為賦值行為,予變量賦值可以賦予常量(1處),也可有賦予變量(2處)
還有一種賦值行為:S = 5 * ( i - 32 ) / 9;
這個表達式計算過程是這樣的
首先()的運算級別最高,先算得擴弧內的內容,然後然後*和/是從右到左計算,然後等號的運算級別最低,所以先將等號右邊的計算完成後,賦值給等號左邊的值
變量的聲明和賦值還可以直接聲明後進行賦值如下
如i和F_max變量,可以寫成:
int F_max = 300;
int i = F_MAX;
從上述可以看到,C語言中變量的聲明和賦值是可以放到一起的,不管是賦予常量還是變量!
第三個只是點C語言中的加減乘除
S = 5 * ( i - 32 ) / 9;
從表達式這個可以看出運算符“*”是乘法,“-”是減法,“/”是除以則“+”便是加法
第四點while循環
while ( i <= F_max) { //while循環的開始和循環條件,i的值不滿足小於等於F_max的值則循環體結束,循環體內的內容有花擴弧擴起來
S = 5 * ( i - 32 ) / 9; //計算出攝氏溫度和華式溫度的對應關系,循環體動作
printf("%d\t=\t%d\n", i, S); //printf函數打印出i華氏溫度和S攝氏溫度,循環體動作
i = i + buchang; //步長,隔幾度算一次,每循環一次,循環條件的判斷值i加20,知道i的值大於F_max的時候循環體結束
} //循環體結束