问题 H: 讨厌的小数点
题目描述
小明一直很讨厌小数点,一看到小数点就头疼。不幸的是,小红给他出了一个题目,问他:
给你一个小数x,你能算出小数点后第n位是什么吗?(1<=n<=6)
小明看到此题后,瞬间头疼晕倒,你能帮帮他吗?
输入
首先输入一个t,表示有t组数据,跟着t行:
每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况),
然后跟一个n,表示小数点后第几位。
输出
输出一个数表示小数点后第n位的数。
样例输入
3
1.234 1
2.345 2
3.456 3
样例输出
2
4
6
//错了两次,因为没有考虑 0.00 6 这种情况运行结果为0
#include <stdio.h>
#include <string.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
char c[100];
int i,flag=0,k=0,n;
scanf("%s %d",c,&n);
for(i=0;i<strlen(c);i++)
{
if(c[i]=='.')
{
flag=1;
continue;
}
if(flag && k<n)
k++;
if(k==n)
{
n=c[i]-'0';
flag=2;
break;
}
}
if(flag!=2)
n=0;
printf("%d\n",n);
}
return 0;
}