我要会学C语言 发表于 2022-10-10 17:45:46

统计一个数在数组中的出现的次数

例如数组 {1,2,11,13,24}
            1的出现次数为4

有什么办法能把一个个读取数组中的数吗?

jackz007 发表于 2022-10-10 17:57:41

本帖最后由 jackz007 于 2022-10-10 18:18 编辑

      是这个意思?
#include <stdio.h>

int count(const int d[] , const int n , const int a)
{
      int i , k , r                        ;
      for(r = i = 0 ; i < n ; i ++) {
                for(k = d ; k ; k = k / 10) {
                        if(k % 10 == a) r ++ ;
                }
      }
      return r                           ;
}

int main(void)
{
      int a[] = {1 , 2 , 11 , 13 , 24}   ;
      printf("%d\n" , count(a , 5 , 1))    ;
}
      编译、运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
4

D:\\C>

jhq999 发表于 2022-10-10 19:38:24

int a[] = {1 , 2 , 11 , 13 , 24},b={0} ;
for(int i=0;i<5;i+=1)
{
        int num=a;
        for(;num;num/=10)
        {
                b+=1;
        }
}
for(int i=0;i<10;i+=1)
{
        if(b)printf("%d:%d\n",i,b);
}

我要会学C语言 发表于 2022-10-10 20:27:07

jackz007 发表于 2022-10-10 17:57
是这个意思?

      编译、运行实况:

请问这是用了count这个函数吗?
这个是已经有了的还是自己创的?

jackz007 发表于 2022-10-10 20:38:38

我要会学C语言 发表于 2022-10-10 20:27
请问这是用了count这个函数吗?
这个是已经有了的还是自己创的?

         当然是自己写的,你这样的功能要求非常的少见,所以,不可能有现成的函数。

柿子饼同学 发表于 2022-10-10 20:50:18

很简单 , 在参数中把这个数组传进来即可

我要会学C语言 发表于 2022-10-10 20:59:30

jackz007 发表于 2022-10-10 20:38
当然是自己写的,你这样的功能要求非常的少见,所以,不可能有现成的函数。

感谢大佬,能简单说明一下这个函数吗?

我要会学C语言 发表于 2022-10-10 21:00:46

柿子饼同学 发表于 2022-10-10 20:50
很简单 , 在参数中把这个数组传进来即可

我是初学者,不是太懂
参数是哪个?

人造人 发表于 2022-10-10 21:04:21

我要会学C语言 发表于 2022-10-10 21:00
我是初学者,不是太懂
参数是哪个?

谁给你出的这个题目?
这个题目超出了你目前学到的知识
等你学完一遍C语言之后就能看懂上面的代码了

我要会学C语言 发表于 2022-10-10 21:09:49

人造人 发表于 2022-10-10 21:04
谁给你出的这个题目?
这个题目超出了你目前学到的知识
等你学完一遍C语言之后就能看懂上面的代码了

这个应该是用到函数了吧,函数的内容我还没学

人造人 发表于 2022-10-10 21:13:00

我要会学C语言 发表于 2022-10-10 21:09
这个应该是用到函数了吧,函数的内容我还没学

是的

jackz007 发表于 2022-10-10 21:15:23

本帖最后由 jackz007 于 2022-10-10 21:18 编辑

我要会学C语言 发表于 2022-10-10 20:59
感谢大佬,能简单说明一下这个函数吗?

1、这个函数
count(const int d[] , const int n , const int a)
       总共接受 3 个输入参数,其中,d 是一个一维整型数组,用于传入需要统计的数组,整型数 n 是 d 中的元素数量,整型数 a 是需要统计的单位(1位)整型数,在本例中,a = 1;

2、在函数内,for 循环 n 次,利用索引 i 依次提取到 d 中的每一个元素,并赋值给整型变量 k,再安排内循环,以对 10 取余的方法,依次求取 k 每个位上的值,并判断这个值是否与目标值 a 相等,如果相等,就让计数器增加 1,这样,当函数结束的时候,就已经完成了对 d[] 中的 n 个元素中,目标值 a 的统计,最后,通过 return r,把这个统计值进行反馈。

我要会学C语言 发表于 2022-10-10 21:27:23

jackz007 发表于 2022-10-10 21:15
1、这个函数

       总共接受 3 个输入参数,其中,d 是一个一维整型数组,用于传入需要统计的数 ...

感谢大佬!懂了!{:10_323:}
页: [1]
查看完整版本: 统计一个数在数组中的出现的次数