zoukankan      html  css  js  c++  java
  • 习题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
    ", intpart);
        printf("The fractional part is %g
    ", 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 }
  • 相关阅读:
    tyvj1117 拯救ice-cream
    codevs3410 别墅房间
    codevs1099 字串变换
    codevs1226 倒水问题
    codevs2449 骑士精神
    codevs1225 八数码难题
    Wikioi 3776 生活大爆炸版石头剪子布
    codevs1197 Vigenère密码
    枚举 + exgcd
    C++ 排序引用的优化
  • 原文地址:https://www.cnblogs.com/samgue/p/13218329.html
Copyright © 2011-2022 走看看