C语言输出小数点后第n位数字

图片说明

要求输出结果依次为2 4 6
我输出结果和这个题目要求一致,但是OJ提交却显示失败,求大佬帮助

#include
#include

int main()
{int t,n,i,m,j,k;
char a[50];
scanf("%d",&t);
while(t--){
scanf("%s%d",a,&n);
m=0;
m=(int)strlen(a);
k=0;
j=0;
for(i=0;i if(a[i]=='.'){
k=i+n;
j=m-i-1;
break;
}
}
if(j>=n){
if(n>=1&&n<=6){
printf("%d\n",a[k]-'0');
}

        }

}

return 0;

}


for(i=0;i if(a[i]=='.'){
这代码根本就是错的。

要保留3位小数,可以用 double,printf中使用 %.3lf