鱼C论坛

 找回密码
 立即注册
查看: 3421|回复: 12

[已解决]统计一个数在数组中的出现的次数

[复制链接]
发表于 2022-10-10 17:45:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

有什么办法能把一个个读取数组中的数吗?
最佳答案
2022-10-10 17:57:41
本帖最后由 jackz007 于 2022-10-10 18:18 编辑

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

  2. int count(const int d[] , const int n , const int a)
  3. {
  4.         int i , k , r                        ;
  5.         for(r = i = 0 ; i < n ; i ++) {
  6.                 for(k = d[i] ; k ; k = k / 10) {
  7.                         if(k % 10 == a) r ++ ;
  8.                 }
  9.         }
  10.         return r                             ;
  11. }

  12. int main(void)
  13. {
  14.         int a[] = {1 , 2 , 11 , 13 , 24}     ;
  15.         printf("%d\n" , count(a , 5 , 1))    ;
  16. }
复制代码

        编译、运行实况:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 4

  4. D:\[00.Exerciese.2022]\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-10 17:57:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-10-10 18:18 编辑

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

  2. int count(const int d[] , const int n , const int a)
  3. {
  4.         int i , k , r                        ;
  5.         for(r = i = 0 ; i < n ; i ++) {
  6.                 for(k = d[i] ; k ; k = k / 10) {
  7.                         if(k % 10 == a) r ++ ;
  8.                 }
  9.         }
  10.         return r                             ;
  11. }

  12. int main(void)
  13. {
  14.         int a[] = {1 , 2 , 11 , 13 , 24}     ;
  15.         printf("%d\n" , count(a , 5 , 1))    ;
  16. }
复制代码

        编译、运行实况:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 4

  4. D:\[00.Exerciese.2022]\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-10 19:38:24 | 显示全部楼层
  1. int a[] = {1 , 2 , 11 , 13 , 24},b[10]={0} ;
  2. for(int i=0;i<5;i+=1)
  3. {
  4.         int num=a[i];
  5.         for(;num;num/=10)
  6.         {
  7.                 b[num%10]+=1;
  8.         }
  9. }
  10. for(int i=0;i<10;i+=1)
  11. {
  12.         if(b[i])printf("%d:%d\n",i,b[i]);
  13. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-10 20:27:07 | 显示全部楼层
jackz007 发表于 2022-10-10 17:57
是这个意思?

        编译、运行实况:

请问这是用了count这个函数吗?
这个是已经有了的还是自己创的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

         当然是自己写的,你这样的功能要求非常的少见,所以,不可能有现成的函数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-10 20:50:18 | 显示全部楼层
很简单 , 在参数中把这个数组传进来即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-10 20:59:30 | 显示全部楼层
jackz007 发表于 2022-10-10 20:38
当然是自己写的,你这样的功能要求非常的少见,所以,不可能有现成的函数。

感谢大佬,能简单说明一下这个函数吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-10 21:00:46 | 显示全部楼层
柿子饼同学 发表于 2022-10-10 20:50
很简单 , 在参数中把这个数组传进来即可

我是初学者,不是太懂
参数是哪个?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-10 21:04:21 | 显示全部楼层
我要会学C语言 发表于 2022-10-10 21:00
我是初学者,不是太懂
参数是哪个?

谁给你出的这个题目?
这个题目超出了你目前学到的知识
等你学完一遍C语言之后就能看懂上面的代码了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

这个应该是用到函数了吧,函数的内容我还没学
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-10 21:13:00 | 显示全部楼层
我要会学C语言 发表于 2022-10-10 21:09
这个应该是用到函数了吧,函数的内容我还没学

是的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-10 21:15:23 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-10 21:18 编辑
我要会学C语言 发表于 2022-10-10 20:59
感谢大佬,能简单说明一下这个函数吗?


  1、这个函数
  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,把这个统计值进行反馈。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-10 21:27:23 | 显示全部楼层
jackz007 发表于 2022-10-10 21:15
1、这个函数

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

感谢大佬!懂了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-17 12:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表