【发布时间】:2012-04-16 11:39:27
【问题描述】:
我需要将用户的输入限制为仅正值,并计算该数字中的位数。用户只能输入一个 (+/-) 整数,最多 9 个字符。
我只能使用 scanf 函数和 for、while 或 do-while 循环。(我在类似的问题中看到了如何使用 getchar 执行此操作,但我只能使用 scanf)。我不允许使用数组,或者除了 stdio.h 和 math.h 之外的任何其他库
我知道,如果我写:
n=scanf("%c%c%c%c%c",&a,&b,&c,&e,&f);
n 将统计成功的 scanf 转换次数。
我遇到的问题是,当我用 char 定义输入时,它会执行我想要的所有操作,除了用户必须输入 5 个字符。因此,如果用户想输入“55”,他必须按“5”“5”“enter”“enter”“enter”。
我需要程序在第一次“输入”后继续前进,但也需要灵活地接收最多 9 位数字的数字。
再次,我不能使用 getchar 或任何花哨的东西。只是你在前 2 周学习的 C 语言中真正基本的东西。
【问题讨论】:
标签: c