0

数字から数字を数え、そのfloat数字を保持する必要があります。scanf()と一緒に使用することはできますが、使用することは%fできませ%cん。%sgetchar()

getcharは使用できますが、数が減ります。

4

2 に答える 2

2

なぜあなたはで番号を失うのgetcharですか?

  1. 空白/入力/入力の終わりに到達するまでgetcharで文字を読み取ります
  2. それらをすべて1つの文字列に収集します
  3. strtod有効な浮動小数点値であることを確認するために使用します
  4. 文字列の桁数を数えます-ポイントの前または後のいずれか、必要なものは何でも。

に制限されている場合getchar

  1. 文字を1つずつ読むgetchar
  2. 数値のどこにいるかの状態を維持します:小数点の前、小数点の位置、または後
  3. 有効な浮動小数点数である限り、桁を数え続けます(つまり、1桁以上、オプションで1桁以上の小数点が後に続く)
  4. 10の累乗をシフトして、桁を浮動小数点数に収集します(つまり、小数点の前に10.0を掛けて新しい数値を加算し、小数点の後に10の累乗で除算して加算します)。
于 2010-01-01T08:13:45.750 に答える
0

私が見るようにあなたはあなたの答えを得ました、しかしこれはあなたのためにも働きますか?

#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;
}
于 2010-01-01T09:08:12.263 に答える