C语言实验——取出小数中指定位数的数字

这篇文章介绍了如何使用C语言编写一个函数,根据用户输入的小数和位数n,获取小数点后的第n位或整数部分的第-n位。通过循环和计算实现了这个功能。
摘要由CSDN通过智能技术生成

题目描述:

编写一个函数,取一个小数的第 n (−10≤n≤16) 位:

  • 当 n>0 时,从小数点位置开始向右取小数部分第 n 位;
  • 当 n<0 时,从小数点位置开始向左取整数部分的第 n 位。输入;

输入:

一行两个数,第一个数是一个小数,第二个数是 n。

5.5772156649015328  10

输出:

小数的第 n 位。

9

代码如下:

#include <stdio.h>
#include <string.h>
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;
}
int get_one_digit(double num,int n)
{
    int a=(int)num,i,y;
    double x;
    if(n>0)
    {
        x=num-a;
        for(i=0;i<n-1;i++)
        {
            x=x-(int)x;
            x=x*10;
        }
        y=(int)x;
        return y;
    }
    if(n<0)
    {
        int b;
        b=(int)num;
        for(i=1;i<-n;i++)
        {
            b=b/10;
        }
        return b%10;
    }
}

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值