C功能:计算整数中数字的出现次数

时间:2018-01-18 17:37:28

标签: c count numbers integer frequency

我收到Output: 1.我应该计算一个数字出现在整数中的次数,例如,对于数字1222345n = 2应该出现{{1} }次。

3

3 个答案:

答案 0 :(得分:4)

您在代码中有未定义的行为。该函数应该返回int并且它没有。

解决方案是在其他功能的末尾添加return i。这将给你正确的结果。在countOccurrences()函数

...
    if(k==n)
    {
        i++;
    }
  }
  return i;
}

我正在跳过错误检查的讨论以及所有这些。正如chux提到的n<=0一样,您可能希望添加一种不同的处理方式,但您没有添加它。 Atleast会考虑这些情况,并在您需要的任何输入上添加错误消息。

有些角落案例

  • n=0,m=0
  • nm的负值。

答案 1 :(得分:1)

countOccurrences 函数返回

int countOccurrences (int n, int num) {

int i, k;
i = 0;
while (num! = 0)
{

     k = num% 10;
     num = num / 10;
     if (k == n)
     {
         i ++;
     }
}

return i; }

答案 2 :(得分:1)

正如其他人所指出的,您的代码存在重要问题。

这是一个你可能感兴趣的递归解决方案:

int countOccurrences(int n, int num)
{
    int count = ((num % 10) == n);

    return (num < 10) ? count : count + countOccurrences(n, num / 10);
}

关于您的代码的一般性评论很少:

  • 使用printf()时,您应该#include <stdio.h>
  • main()应该返回int
  • 在运算符周围放置空格并一致地格式化代码。此k = num % 10;k=num%10;更具可读性。 (除了品味之外,还有更多的代码格式;没有空格,你会创建充满字符的区域,这些区域对于我们的视觉系统来说更难解析。)