gpt4 book ai didi

c - K&R 4.2 书中的 atof()

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:57 24 4
gpt4 key购买 nike

<分区>

我正在练习 K&R 书 4.2 中提供的 atof()。但是,当我编译以下代码时,我得到了

1952.690000

代替

1237.88

试过了,还是不知道哪里不对。可能类型转换有问题?

#include <stdio.h>
#include <ctype.h>

double atof(char s[]) {
int i, sign;
double n, power;

for (i = 0; isspace(s[i]); ++i)
;

sign = (s[i] == '-') ? -1 : 1;
if (s[i] == '-' || s[i] == '+')
++i;

for (n = 0.0; isdigit(s[i]); ++i)
n += n * 10.0 + s[i] - '0';

if (s[i] == '.')
++i;
for (power = 1.0; isdigit(s[i]); ++i) {
n += n * 10.0 + s[i] - '0';
power *= 10.0;
}

return sign * n / power;
}

int main() {
char s[] = "1237.88";

printf("%lf", atof(s));

return 0;
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com