Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何调用计算整数位数的函数_C_Visual Studio 2015 - Fatal编程技术网

C 如何调用计算整数位数的函数

C 如何调用计算整数位数的函数,c,visual-studio-2015,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", &

我的函数应该得到一个非负整数,并返回数字中有多少位,例如,对于数字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;
}
#包括
整数位数(整数n)//宣布
void main()
{
int num1,计数器=0,newNum;
printf(“输入一个数字:”);
scanf(“%d”&num1);
}
整数位数(整数n1)
{
int计数器=0;
如果(n1==0)
返回1;
而(n1>0){
计数器++;
n1/=10;
}
返回计数器;
}

我应该写什么来让程序工作

只需调用您创建的数字计数函数并将其返回值分配给变量,然后使用
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;
}
#包括
整数位数(整数n);
内部主(空)
{
int num1;
int计数器=0;
printf(“输入一个数字:”);
scanf(“%d”&num1);
计数器=num位数(num1);
printf(“位数:%d\n”,计数器);
//printf(“位数:%d\n”,numf位数(num1));替代方法
}
整数位数(整数n1)
{
int计数器=0;
如果(n1==0)
返回1;
而(n1>0){
计数器++;
n1/=10;
}
返回计数器;
}
几点注意:

    <> LI>因为您提到需要得到一个非负数,考虑使用<代码>无符号int 类型,并在代码> > SCANFF()中更改格式说明符< /COD>和<代码> Print For(<代码> >调用<代码> %%u”< /代码> .
  • 函数
    main
    应声明为
    intmain(void)
    intmain(intargc,char**argv)

“我应该写些什么来让程序工作?”您忘记了解释为什么/如何它不工作。
main()
应该调用
numfodigits()
。然后打印结果。我如何调用函数并传递给main?听起来你需要阅读教科书中解释如何调用函数的部分。所以,这不是学习基础知识的替代品。谢谢你!我现在明白它是如何工作的了。此代码中返回1的目的是什么?我知道什么数字等于零,它应该返回1,但它真正的含义是什么?@AndrewM它的意思是,如果传递给函数的数字是
0
,那么
1
将返回,因为
0
是一个单位数。@AndrewM单击答案旁边左侧的复选标记。