C语言习题5.13--趣味取小数

题目描述

听说大家最近学得不错,教授就准备考考大家,先做出来有奖哦~

编写一个函数,取一个小数的第n(-10<=n<=16)位,当n大于0时,从小数点位置开始向右取小数部分第n位,当n小于0时,从小数点位置开始向左取整数部分的第n位。

#include
#include
int get_one_digit(double num,int n); /*函数声明*/
int main()
{
    double number;
    int n;
    int digit;  /
*第n位数字*/

    scanf("%lf %d",&number,&n); /*输入数据*/

    digit=get_one_digit(number,n);  /*调用查找第n位数字并将数字返回复制给digit*/

    printf("%d\n",digit);
    return 0;
}

主程序已给出,请编写get_one_digit函数并提交该函数即可

输入

一个小数,取小数的第n

输出

小数的第n

样例输入

5.5772156649015328  10

样例输出

9



  1. #include
  2. #include
  3. int get_one_dight(double num,int n); /*函数声明*/
  4. int main()
  5. {
  6.     double number;
  7.     int n;
  8.     int digit;  /*第n位数字*/
  9.     scanf("%lf %d",&number,&n); /*输入数据*/
  10.     digit=get_one_dight(number,n);  /*调用查找第n位数字并将数字返回复制给digit*/
  11.     printf("%d\n",digit);
  12.     return 0;
  13. }int i=0,a,s;
  14. int get_one_dight(double num,int n)
  15. {
  16.     if(i==n) return (int)a;
  17.     else
  18.     {
  19.         if(n>0)
  20.         {
  21.             a=(int)num;
  22.             num=num-a;
  23.             num*=10;
  24.             a=(int)num;
  25.             i++;
  26.             get_one_dight(num,n);
  27.         }
  28.         if(n<0)
  29.         {
  30.             s=(int)num;
  31.             a=s%10;
  32.             s=s/10;
  33.             i=i-1;
  34.             get_one_dight(s,n);
  35.         }
  36.     }
  37.     return a;
  38. }

你可能感兴趣的:(计153-12和计155—6)