1. 程式人生 > >2、專案2-分離整數和小數部分

2、專案2-分離整數和小數部分

1. 任務描述
從鍵盤上輸入一個浮點數(小數點後有三位數),分別輸出該數的整數部分和小數部分。

2. 程式碼實現

/*
*Copyright(c)2018,CSDN
*All rights reserved.  
*檔名稱:point_separate.cpp 
*作    者:馬婭芳
*完成日期:2018.12.27 
*版 本 號:v1.0 

*問題描述:從鍵盤上輸入一個浮點數(小數點後有三位數),分別輸出該數的整數部分和小數部分。
*程式輸入:一個有3位小數的浮點數 
*程式輸出:小數的整數部分和小數部分 
*/ 

#include <stdio.h>

int main(){
	float a;
	int b, c;
	
	printf("請輸入一個3位小數:");
	scanf("%f", &a);
	
	b = a;    //自動型別轉換,取整數部分 
	c = (a - b)*1000;   //減去整數部分後乘以1000得到小數部分 
	
	printf("它的整數部分是:%d\n", b);
	printf("它的小數部分是:%d\n", c);
	return 0;
} 

3. 執行結果
在這裡插入圖片描述

4. 知識點總結
(1)資料型別的自動轉換規則:
① short, char ----> int
② int ----> unsigned
③ unsigned ----> long
④ long ----> double
⑤ float ----> double
總之,當不同資料型別的變數或常量進行運算時,運算元的資料型別自動地按照轉換規則轉化為範圍更大的資料型別。

(2)資料型別的強制轉換
與自動轉換不同,資料型別的強制轉換需要人為干涉,保證程式正確執行,語法規則為:(型別)(表示式),並且要注意強制型別轉換運算順序從左到右,和其他運算的混合時應該注意是否可以得到自己想要的結果資料型別。

5. 心得
第一次編譯程式時,編譯通過,但是輸入資料後沒有執行結果,原因是 printf 語句裡漏寫了 %d ,加上之後再執行,得到了想要的結果。