首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在函数中打印出9个以上?

如何在函数中打印出9个以上?
EN

Stack Overflow用户
提问于 2018-11-29 20:32:06
回答 1查看 44关注 0票数 0
代码语言:javascript
复制
#include <stdio.h>

void numDigits(int count, int number) {
    while (number > 0)
    {
        number = number / 10;
        count = count + 1;
    }
    printf("\nThe number of positive intergers is %d.\n", count);
}

int main()
{
    int number;
    int count = 0;
    printf("Please enter a number: ");
    scanf_s("%d", &number);
    numDigits(count, number);
    return 0;
}

对于超过9位的数字,此代码会打印出'9‘。如果用户输入0123456789,它应该等于10,但这段代码显示为'9‘。

EN

回答 1

Stack Overflow用户

发布于 2018-11-29 20:36:19

您将数字保存为int,并且这不会记录前导0。对于程序来说,无论用户输入的是0123456789还是123456780都是一样的,因为两者都存储为123456789。相反,您应该将其作为字符串读取:

代码语言:javascript
复制
char buf[20];   // holds a maximum of 20 digits, different amounts can be specified

然后再做

代码语言:javascript
复制
scanf_s("%19s", buf);   // include one less than the same length that was specified in buf's definition

你甚至不需要一个函数来操作整数和计算数字,只需使用strlen

代码语言:javascript
复制
printf("\nThe number of positive intergers is %d.\n", strlen(buf));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53539161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档