如何调用对整数中的数字进行计数的函数

How to call function that counts digits in an integer

我的函数应该得到一个非负整数,return 这个数字有多少位,例如数字 563 函数 return 3。 对于 0 将 return 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;
}

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

只需调用您制作的数字计数函数并将其return值赋给一个变量,然后使用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;
}

一些注意事项:

  • 既然你提到你需要得到一个 non-negative 数字,考虑使用 unsigned int 类型,并将 scanf()printf() 调用中的格式说明符更改为 "%u".
  • 函数 main 应声明为 int main(void)int main(int argc, char **argv)