c - 如何调用计算整数中位数的函数

标签 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;
}

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

最佳答案

只需调用您创建的数字计数函数并将其返回值分配给一个变量,然后使用 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)

关于c - 如何调用计算整数中位数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48833996/

相关文章:

c - 使用 c 查找斐波那契数中的第 n 个数

C编程指针char数组

c - 设置了 O_NONBLOCK 的套接字 fd 的多次读取调用失败

python - 识别文件中的 C 函数(左大括号和右大括号)

c# - Visual Studio 2015/C# 6/Roslyn 无法编译 PCL 项目中的 XML 注释

c++ - long long是8个字节,什么意思?

multithreading - omp_get_num_threads() 和 omp_get_thread_num() 返回废话

visual-studio - 团队基础错误,找不到页面 '3185ed96-1cbd-4381-a439-636973542e50'

visual-studio - Windows Phone 模拟器无法连接到 UDP 端口错误

visual-studio-2015 - 无法连接到 Azure 存储