【发布时间】:2011-06-20 06:27:35
【问题描述】:
#include <stdio.h>
int intVal(int x)
{
if(x < '0' || x > '9'){
return 0;
}
else{
x = x - '0';
return x;
}
}
int main(void)
{
int c, num, prev;
while((c = getchar()) != EOF){
num = (intVal(prev) * 10) + intVal(c);
prev = num;
printf("%d", num);
}
return 0;
}
我想用这个程序做的是输入一个任意数字来一次读取一个字符,然后将它格式化为一个 int 以便我可以使用它(不想使用 printf 格式)另外,我只被允许使用 getchar 和 printf 来完成这项任务。
示例输入:0001234.5
编辑所需输出:(5)
实际输出:0001234050
我感觉自己正处于顿悟的边缘,但我遇到了障碍,请帮忙?
*edit 我忘了提到我想要的 END 结果是在 中包含非十进制数,在括号 (5) 中包含十进制数
【问题讨论】:
-
如果需要输出是 1234.5,为什么要使用 int 来存储输出?
标签: c int string-formatting c89