C語言不同數據類型間的混合運算


使用C語言將不同數據類型之間進行混合運算,此次為個人練習,若有錯誤敬請提出。

首先,我們來看一個小例子:

        定義一個整型,一個字符型,一個浮點型,輸入部分“%d%c%f”不使用空格進行隔開。

#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int i;
    char c;
    float f;
    scanf("%d%c%f", &i, &c, &f);
    printf("i=%d,c=%c,f=%f\n", i, c, f);
}

 

那么,輸出的結果如下:

1024 y 96.5
i=1024,c= ,f=0.000000

 

為什么c輸出來的結果為空?f輸出來的是0.000000?因為我們在輸入參數時將值使用空格隔開輸入,而scanf參數中並沒有用空格把三個參數進行隔開。於是,%c取值取到了空格,而空格在ASCII 編碼中用字符表示如下表:

 

因此,c取值為空。而f取的值是字符m,於是得出來的值為0.000000

接下來,我們開始整型,字符型,浮點型的混合運算。

要求:讀取一個整型數,字符,浮點數,分別到變量i,j,k中,然后將i,j,k直接相加並輸出,小數點后保留兩位小數,不用考慮輸入的浮點數的小數部分超過了兩位

我們要知道有小數是屬於浮點數,而保留兩位小數是%.2f。輸出部分使用強制轉換

代碼如下:

#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int i;
    char j;
    float k;
    scanf("%d %c %f", &i, &j, &k);
    printf("%.2f", (float)i+(float)j+k);
    return 0;
}

 

運行結果:

 輸入10 a 98.3 時,所以輸出的字符型應為 "205.30" ,如下所示:

10 a 98.3
205.30

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM