时间限制: 1 Sec 内存限制: 128 MB
题目描述
给你一个小数x,让你算出小数点后第n位是什么,1 <= n <= 6。
输入
首先输入一个t,表示有t组数据,跟着t行:
每行输入一个小数(输入数据保证一定是a.b的形式,总长度不超过100。为了简单化问题,没有循环小数的情况),然后跟一个n,表示小数点后第几位。
输出
输出一个整数,表示小数点后第n位的数。
样例输入 Copy
3 1.234 1 2.345 2 3.456 4
样例输出 Copy
2 4 0#include <stdio.h> #include<string.h> int main() { int i,j,n,t,k; char num[100];//因为该数据有长度要求,所以用字符数组解决较为合适 scanf("%d",&t);//表示有t组数据 for(i=0;i<t;i++) { scanf("%s%d",num,&n);//用scanf()以%s格式读入的数据不能含有空白符,所有空白符都被当作数据结束的标志 for(j=0;j<strlen(num);j++) { if(num[j]=='.') //找到小数点所在位置即可退出循环 { k=j; break; } } if((k+n)>=strlen(num)) //如果(小数点前的位数+要求的小数点后位数)>该小数的位数 printf("0\n"); else printf("%c\n",num[k+n]); } return 0; }