您的位置:首页 > 编程语言 > C语言/C++

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

2015-12-27 16:54 363 查看

题目描述

听说大家最近学得不错,教授就准备考考大家,先做出来有奖哦~编写一个函数,取一个小数的第n(-10<=n<=16)位,当n大于0时,从小数点位置开始向右取小数部分第n位,当n小于0时,从小数点位置开始向左取整数部分的第n位。#include <stdio.h>#include <string.h>int get_one_digit(double num,int n); /*函数声明*/int main(){doublenumber;int n;intdigit; /*第n位数字*/scanf("%lf%d",&number,&n); /*输入数据*/digit=get_one_digit(number,n);/*调用查找第n位数字并将数字返回复制给digit*/printf("%d\n",digit);return0;}主程序已给出,请编写get_one_digit函数并提交该函数即可

输入

一个小数,取小数的第n位

输出

小数的第n位

样例输入

5.5772156649015328  10

样例输出

9
#include<stdio.h>#include <string.h>
int
get_one_dight(
double
num,
int
n);
/*函数声明*/
int
main()
{
double
number;
int
n;
int
digit;
/*第n位数字*/
scanf
(
"%lf %d"
,&number,&n);
/*输入数据*/
digit=get_one_dight(number,n);
/*调用查找第n位数字并将数字返回复制给digit*/
printf
(
"%d\n"
,digit);
return
0;
}
int
i=0,a,s;
int
get_one_dight(
double
num,
int
n)
{
if
(i==n)
return
(
int
)a;
else
{
if
(n>0)
{
a=(
int
)num;
num=num-a;
num*=10;
a=(
int
)num;
i++;
get_one_dight(num,n);
}
if
(n<0)
{
s=(
int
)num;
a=s%10;
s=s/10;
i=i-1;
get_one_dight(s,n);
}
}
return
a;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: