我非常迷茫和困惑。
我必须使用 getchar 读入一个浮点整数,例如 3.432。然后,我必须使用 printf 将其再次打印为精度为小数点后 4 位的 float 。所以 3.432 --> 3.4320 和 .450 --> .4500,以及 453 --> 453.0000。
我一直在使用 getchar() 并且我明白这一点,但是试图将值重新转换为 float 是我非常迷茫的地方。
float num = 0.0;
char ch;
while((ch = getchar()) != '\n'){
num = ch - '0';
printf("%.4f", num);
}
我知道为什么这是错误的,也知道它输出了什么,但这就是我目前所知道的
编辑:我只能使用 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;
}
关于C - 使用 getchar 读入 float 值并使用 printf 打印出 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341693/