c语言求助

给你一个小数x,你能指出小数点后和小数点前第n位是什么吗?(-6<=n<=6)。(要求用自定义函数实现查找功能,返回第n位的值)
输入:首先输入一个t,表示有t组数据,接着t行,每行输入一个小数和一个n,表示小数点后第几位(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况)。n<0表示小数点前|n|位,n>0表示小数点后|n|位。
输出:输出一个数,表示小数点后第n位的数,若没有这位或n为0则输出“-1”,有多个输出时换行输出

#include <stdio.h>
#include <stdlib.h>
int char2Int(char a){
if(a<='9' && a>='0')
return a-'0';
return -1;
}
int getDigit(char * s, int n)
{
int dotPosition = 0;
int len = 0;
for(len = 0;s[len] != '\0';len++);
for(dotPosition = 0;s[dotPosition] != '.';dotPosition++);
if(n == 0 || n< dotPosition *-1 || n > len - dotPosition - 1){

return -1;
}
if(n > 0)
{
return char2Int(s[ n + dotPosition ]);
}
else{
return char2Int(s[ n + dotPosition ]);
}
}
int main(){

printf("输入小数\n");
char number[64];
scanf("%s",number);
int i;
printf("输入位数\n");
scanf("%d",&i);
printf("%d\n",getDigit(number,i));

}

这是源代码,不明白可追问。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-13
相似回答