HDU 2549 壮志难酬(字符串,处理小数点)

/*
给你一个小数x,让你算出小数点后第n位是什么,(1 <= n <= 6)
Input

首先输入一个t,表示有t组数据,跟着t行:
每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况)
然后跟一个n,表示小数点后第几位
Output

输出一个数表示小数点后第n位的数
*/
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
    int t;
    char a[105];
    int n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s%d",a,&n);
        int len=strlen(a);
        for(int i=0;i<len;i++)
        {
            if(a[i]=='.')
                break; //!!找到小数点所在下标i的位置
        }
        
        if(n>len-i-1) //!!得到减去小数点及小数点之前数后得到的长度 并判断是否超长 
            printf("0
");
        else
            printf("%c
",a[n+i]);//!!
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/Roni-i/p/7208911.html