【问题标题】:how to scan a string in C without arrays如何在没有数组的情况下扫描C中的字符串
【发布时间】:2014-11-27 21:28:29
【问题描述】:

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

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

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

【问题讨论】:

  • 使用指针。我想这是练习的目的。

标签: c double decimal


【解决方案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);

【讨论】:

  • @ggguhuy 阴性未清楚显示时的结果。将abs 用于n1
  • 我不太明白你做了什么。你能解释一下代码吗?
  • @ggguhuy 显示负数情况下预期结果的示例。 “它不起作用”不清楚是什么问题。
猜你喜欢
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
相关资源
最近更新 更多