C 函数 : Count the occurrences of a digit in an integer

标签 c count numbers integer frequency

<分区>

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

int countOccurrences(int n, int num)
{
    int i,k;

    i=0;
    while(num!=0)
    {

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

// Main
void main()
{
    int num= 1222345;
    int n = 2;
    printf("Occurance of a number: %d", countOccurrences(n,num));
}

最佳答案

您在代码中有未定义的行为。该函数应该返回 int但事实并非如此。

解决方案是添加return i在其他功能结束时。这会给你正确的结果。在countOccurrences()功能

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

我跳过了关于错误检查等的讨论。作为chux提及 n<=0如果您可能想添加一种不同的处理方式,但您没有添加它。至少考虑这些情况,并在您需要的任何输入上放置一条错误消息。

一些极端情况是

  • n=0,m=0 .
  • n 的负值或 m .

关于C 函数 : Count the occurrences of a digit in an integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48327243/

相关文章:

c - 小整数 vector 的高效比较

c - 按网络顺序将无符号字节数组直接写入 ip.ip_dest 是否安全?

php - 将逗号应用于 MySQL 中的数字字段

C套接字编程未输入端口

java - 在 Java 中按 3 组用空格拆分数字

补二进制数

循环结构声明C

php - 计算数组中相等的相邻值

count - 如何计算谷歌电子表格中逗号分隔数字的数量?

java - 传递两个字符串数组并计算Java中x数组中y数组的出现次数