double getfloat(double *pn) {
if (pn == NULL)
return -1;
int c, sign, flag=1;
while (isspace(c = getchar()));
if (!isdigit(c) && c != EOF && c != '+' && c != '-')
{
ungetc(c, stdin);
return 0;
}
sign = (c == '-') ? -1 : 1;
if (c == '-' || c == '+') {
c = getchar();
if (!isdigit(c)) {
ungetc(c, stdin);
return 0;
}
}
for (*pn = 0;isdigit(c);c = getchar()) {
*pn = 10 * *pn + (c - '0');
}
if (c == '.') {
c = getchar();
if (!isdigit(c)) {
ungetc(c, stdin);
}
for (;isdigit(c);c = getchar()) {
flag *= 10;
*pn = 10 * *pn + (c - '0');
}
}
*pn = *pn / flag * sign;
if (c != EOF)
ungetc(c, stdin);
return c;
}
c 程序设计语言 第二版 练习题 5-2
最新推荐文章于 2021-12-04 22:37:51 发布