繁体   English   中英

大于特定数量的元素

[英]Elements greater than certain number

我想在数组中找到大于给定数字的元素数。 就像我有以下数组:{ 10, 113, 34, 2, 19, 57} 并且想要查找大于 30 的数字,那么我会得到 3。

这是我的代码

#include <stdio.h>

int main()
{
    int array[] = { 10, 113, 34, 2, 19, 57}; 
    int n = sizeof(array) / sizeof(array[0]); 
    int A = 30;
    
    int l = 0; 
    int r = n - 1; 
    
    int leftGreater = n;
  
    while (l <= r) { 
        int m = l + (r - l) / 2; 
  
        if (array[m] > A) { 
            leftGreater = m; 
            r = m - 1; 
        } 
  
        else
            l = m + 1; 
        
    } 
    printf("%d",n - leftGreater);
}

但是我得到的是 5 而不是 3。谁能帮我解决这个问题?

一个简单for循环就足够了:

#include <stdio.h>

int main(void)
{
    int array[] = { 10, 113, 34, 2, 19, 57 }; 
    int n = sizeof(array) / sizeof(array[0]); 
    int x = 30, res = 0;

    for (int i = 0; i < n; i++)
    {
        if (array[i] > x)
        {
            res++;
        }
    }
    printf("%d\n", res);
    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM