#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;
}
我想用这个程序做的事情是输入一个任意数字,一次读取一个char,然后将其格式化为一个int以便我可以使用它(不想使用printf格式化)另外,我仅允许使用getchar和printf进行此分配。
样本输入:0001234.5edit所需的输出:<1234>(5)实际输出:0001234050
[我感觉自己正处于顿悟的风口浪尖,但遇到了障碍,请帮忙吗?
*编辑我忘了说我要去的END结果是在<1234>中包含非十进制数字,并在方括号(5)中包含十进制数字]
几件事:
尝试一下(没有符号评估和错误处理):
您的函数intVal