如何在没有数组的情况下扫描C中的字符串

时间:2014-11-27 21:28:29

标签: c double decimal

我们在C中得到了一个项目,在项目中我们得到一个小数(正数或负数)并打印所有数字。解释页面说,progtam可能得到一个不是双数的数字所以“我们不能使用双“,我们不能使用数组。它说“我们必须有创造力”。这就是我所做的:

For(I=0;I<=2;I++){ Scanf("%d", &a); printf("%d", a);}

因此,如果我得到“12.3456”(在同一行中)作为输入,则只打印前3位数字(123)。如何打印任何输入的所有数字。 或者你可能有不同的想法...谢谢

1 个答案:

答案 0 :(得分:1)

int n1, n2, i1,i2;
int status;

status = scanf("%d.%n%d%n", &n1, &i1, &n2, &i2);
if(status == 2)
    printf("%d%0*d\n", n1, i2-i1, n2);
else if(status == 1)
    printf("%d\n", n1);