我们在C语言中有一个项目,在项目中我们有一个十进制(正数或负数)数字,用来打印所有的数字。解释页上说progtam可能会得到一个不是双精度的数字,因此“我们不能使用双精度”并且我们不能使用数组。它说“我们必须有创造力”。我就是这么做的:

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

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

最佳答案

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);

关于c - 如何在C中扫描没有数组的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27178859/

10-16 19:33