如何调用计算整数数字的函数

时间:2018-02-16 19:58:14

标签: c visual-studio-2015

我的函数应该得到一个非负整数,并返回数字中有多少位数,例如数字563,函数返回3。 并且0将返回1.

*我是c的新人,所以对我来说仍然很困惑。 感谢。

这是我的代码:

#include <stdio.h>

int numOfDigits(int n); //Declartion

void main()
{
    int num1, counter = 0, newNum;

    printf("Enter A Number: ");
    scanf("%d", &num1);
}

int numOfDigits(int n1)
{
    int counter = 0;
    if (n1 == 0)
        return 1;

    while (n1 > 0) {
        counter++;
        n1 /= 10;
    }
    return counter;
}

我应该写什么才能使程序运作?

1 个答案:

答案 0 :(得分:2)

只需调用您所做的数字计数功能,并将其返回值分配给变量,然后使用printf()函数打印该变量的值;或者,在printf()内调用您的数字计数功能作为参数:

#include <stdio.h>

int numOfDigits(int n);

int main(void)
{
    int num1;
    int counter = 0;

    printf("Enter A Number: ");
    scanf("%d", &num1);

    counter = numOfDigits(num1);
    printf("number of digits: %d\n", counter);

    //printf("number of digits: %d\n", numOfDigits(num1)); alternate method

}

int numOfDigits(int n1)
{
    int counter = 0;
    if (n1 == 0)
        return 1;

    while (n1 > 0) {
        counter++;
        n1 /= 10;
    }
    return counter;
}

几点说明:

  • 由于您提到需要获取非负数,请考虑使用unsigned int类型,并将scanf()printf()内的格式说明符更改为"%u"
  • 功能main应声明为int main(void)int main(int argc, char **argv)