我非常迷茫和困惑。
我必须使用 getchar 读取像 3.432 这样的浮点整数。然后,我必须使用 printf 将其作为精度为 4 位小数的浮点数再次打印出来。所以 3.432 --> 3.4320 和 .450 --> .4500 和 453 --> 453.0000。
我一直在使用 getchar() 并且我理解这一点,但是尝试将值重新转换为浮点数是我非常迷茫的地方。
float num = 0.0;
char ch;
while((ch = getchar()) != '\n'){
num = ch - '0';
printf("%.4f", num);
}
Run Code Online (Sandbox Code Playgroud)
我知道为什么这是错误的以及它输出什么,但这就是我到目前为止所拥有的
编辑:我只能使用 getchar 来读取浮点值
未测试(没有时间)。希望能帮助到你。
#include <stdio.h>
int main(void)
{
float num = 0.0;
float i = 1.0;
char ch;
printf("Enter a float number: ");
while((ch = getchar()) != '\n')
{
if (ch == '.')
{
i = 0.1;
}
else if ((ch>= '0') && (ch <='9'))
{
if (i==1)
{
num *= 10;
num += ch - '0';
}
else
{
num += (ch - '0') * i;
i /= 10;
}
}
}
printf("%.4f\n", num);
return 0;
}
Run Code Online (Sandbox Code Playgroud)