0
我需要從浮點數中計數數字並保留該數字。我可以使用scanf爲%f或%c,但不是%s,我可以使用getchar()。 我可以使用getchar,但不適用寬鬆的號碼計數浮點數(hw)C
我需要從浮點數中計數數字並保留該數字。我可以使用scanf爲%f或%c,但不是%s,我可以使用getchar()。 我可以使用getchar,但不適用寬鬆的號碼計數浮點數(hw)C
爲什麼你會丟失號碼getchar
?
strtod
,以確保它是一個有效的浮點值如果你只限於getchar
:
getchar
正如我看到你已經得到了你的答案,但這是否也適用於你?
#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;
}
對不起,如果我不清楚,我不能使用字符串。我只能保存一個字符(一次只有一個)或一個數字(僅限於使用scanf和getchar) – 2010-01-01 08:18:13
已更新我的答案HTH。因爲這是一個硬件問題,爲了獲得更多的幫助,你應該發佈一些你自己的代碼,並確切地注意你的問題 – 2010-01-01 08:25:21
解析0.123是更好的讀取「123」部分作爲一個整數和一步將它除以1000。由於IEEE 754浮點數不能表示0.1,0.02或0.003,因此您的方法會累積更多的舍入誤差。 – 2010-01-01 08:46:13