计算浮点数(hw)C

时间:2010-01-01 08:06:07

标签: c

我需要计算浮点数的数字并保留数字。我可以将scanf用于%f或%c而不是%s,我可以使用getchar()。 我可以使用getchar但是数字松散

2 个答案:

答案 0 :(得分:2)

为什么会丢失getchar的数字?

  1. 使用getchar读取字符,直到您点击空白/输入/输入结尾
  2. 将它们全部收集到一个字符串中
  3. 使用strtod确保它是有效的浮点值
  4. 计算字符串中的数字 - 在该点之前或之后,无论您需要什么。
  5. 如果您仅限于getchar

    1. 使用getchar
    2. 逐个阅读字符
    3. 保持数字所在的状态:小数点前,小数点后或
    4. 之后
    5. 只要它是一个有效的浮点数(即1位或更多位数,然后可选地是一个小数点后面有1位或更多位数),请继续对数字进行计数。
    6. 通过移动10的幂(即在小数点前乘以10.0并在小数点后除以10的增加幂并添加新数字)将数字收集到浮点数中。

答案 1 :(得分:1)

我看到你得到了答案,但这对你有用吗?

#include <stdio.h>


int main()
{
    char *str = new char[30];
    float flt;
    int count = 0;

    scanf( "%f", &flt);
    printf( "number you entered is: %f\n", flt);
    sprintf(str, "%f", flt );

    for( ;str[count] != '\0'; count++ );

    printf( "%f have %d digits", flt, count-1);
    return 0;
}