習題8-1 拆分實數的整數與小數部分 (15分)


本題要求實現一個拆分實數的整數與小數部分的簡單函數。

函數接口定義:

void splitfloat( float x, int *intpart, float *fracpart ); 
 

其中x是被拆分的實數(0x<10000),*intpart*fracpart分別是將實數x拆分出來的整數部分與小數部分。

裁判測試程序樣例:

#include <stdio.h> void splitfloat( float x, int *intpart, float *fracpart ); int main() { float x, fracpart; int intpart; scanf("%f", &x); splitfloat(x, &intpart, &fracpart); printf("The integer part is %d\n", intpart); printf("The fractional part is %g\n", fracpart); return 0; } /* 你的代碼將被嵌在這里 */ 
 

輸入樣例:

2.718
 

輸出樣例:

The integer part is 2
The fractional part is 0.718


 1 void splitfloat( float x, int *intpart, float *fracpart ){
 2     int temp;
 3     temp=(int)x;
 4     if(x==0){
 5         *intpart=*fracpart=0;
 6     }
 7     else if(x>0){
 8         if(temp>x){
 9             *intpart=temp-1;
10             *fracpart=(x+1-temp);
11         }
12         else{
13             *intpart=temp;
14             *fracpart=(x-temp);
15         }
16     }
17     else if(x<0){
18         if(temp>x){
19             *intpart=temp;
20             *fracpart=(x-temp);
21         }
22         else{
23             *intpart=temp+1;
24             *fracpart=(x-1-temp);
25         }
26     }
27 }

 


免責聲明!

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



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