gpt4 book ai didi

在c中仅使用scanf计算位数

转载 作者:行者123 更新时间:2023-11-30 14:25:46 24 4
gpt4 key购买 nike

我需要将用户的输入限制为仅正值,并计算该数字中的位数。用户只能输入最多 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 语言的基本内容。

最佳答案

使用 scanf 将数字读入 long int ,然后使用带有/10 的 for 循环来计算位数

如果输入了 -ve 数字,您希望程序执行什么操作?

#include<stdio.h>
int main()
{

long int a;
int b;
do
{
scanf ("%ld",&a);
if(a<0)
printf ("invalid input");
}while(a<0);

for(b=0;a!=0;b++,a=a/10);
printf("%d",b);
}

(不专门处理 -ve 数字)

关于在c中仅使用scanf计算位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com