歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C語言中簡單的for循環和浮點型變量

浮點型變量:常數中帶有小數點的叫做浮點型

以下用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 符號  常量                //這種形式定義

一般將符號常量的定義放在頭文件的下邊和程序的開頭部分!

Copyright © Linux教程網 All Rights Reserved