C语言程序设计 一道C语言

一道C语言题目,求解答!

从键盘输入一串数字字符 (该字符串至多包含一个点号’.’),将其转换成对应的实数。说明:点号前有0-9位数字字符,点号后有0-6位数字字符,但是点号前后不能同时没有数字字符。例如输入:“36.8"或"36.80”,则输出实数:36.800000;输入:".8"、“0.8"或"0.800”,则输出实数:0.800000;输入字符串:“36"或"36.0”,则输出实数:36.000000。

供参考:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    double val =  0 ;
    char   str[32] = { 0 };
    printf("请输入数字字符:");
    scanf("%s", str); 
    sscanf(str, "%lf", &val);
    printf("%f", val);
    return 0;
}