鱼C论坛

 找回密码
 立即注册
查看: 2485|回复: 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 编辑

        是这个意思?
#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[i] ; 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:\[00.Exerciese.2022]\C>g++ -o x x.c

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

D:\[00.Exerciese.2022]\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[i] ; 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:\[00.Exerciese.2022]\C>g++ -o x x.c

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

D:\[00.Exerciese.2022]\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-10 19:38:24 | 显示全部楼层
int a[] = {1 , 2 , 11 , 13 , 24},b[10]={0} ;
for(int i=0;i<5;i+=1)
{
        int num=a[i];
        for(;num;num/=10)
        {
                b[num%10]+=1;
        }
}
for(int i=0;i<10;i+=1)
{
        if(b[i])printf("%d:%d\n",i,b[i]);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

        编译、运行实况:

请问这是用了count这个函数吗?
这个是已经有了的还是自己创的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

         当然是自己写的,你这样的功能要求非常的少见,所以,不可能有现成的函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-10 20:50:18 | 显示全部楼层
很简单 , 在参数中把这个数组传进来即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

感谢大佬,能简单说明一下这个函数吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我是初学者,不是太懂
参数是哪个?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谁给你出的这个题目?
这个题目超出了你目前学到的知识
等你学完一遍C语言之后就能看懂上面的代码了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这个应该是用到函数了吧,函数的内容我还没学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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,把这个统计值进行反馈。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

感谢大佬!懂了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-8 01:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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