永发信息网

请教大神如何用C编程实现求只有0和1的数组num[h]中n个位置连续相邻的1的个数m;

答案:1  悬赏:80  手机版
解决时间 2021-04-19 23:03
  • 提问者网友:饥饿走向夜
  • 2021-04-19 02:54
请教大神如何用C编程实现求只有0和1的数组num[h]中n个位置连续相邻的1的个数m;
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-04-19 03:21
一个一个数过去呗
#include 

size_t f(size_t n, const unsigned *num, size_t h)
{
    if (n == 0) return 0;    //自行处理n=0的情况
    size_t count = 0;        //记录目前所找到的n个连续相邻的1的个数
    size_t consecutive1 = 0; //记录目前1已经连续到第几个
    for (size_t i = 0; i != h; ++i) {
        if (num[i] == 1) ++consecutive1;    //连续的1又多了一个
        else {
            if (consecutive1 == n) ++count; //恰好n个1相邻
            consecutive1 = 0;               //为下一组1的计数做准备
        }
    }
    if (consecutive1 == n) ++count; //num最后一位可能是1
    return count;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯