[英]Elements greater than certain number
I would like to find the number of elements greater than a given number in an array.我想在数组中找到大于给定数字的元素数。 Like if I have the following array: { 10, 113, 34, 2, 19, 57} And want to look for numbers greater than 30 then I would get 3.就像我有以下数组:{ 10, 113, 34, 2, 19, 57} 并且想要查找大于 30 的数字,那么我会得到 3。
Here is my code这是我的代码
#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);
}
But instead of 3, I'm getting 5. Can anyone please help me solve this?但是我得到的是 5 而不是 3。谁能帮我解决这个问题?
A simple for
loop is enough:一个简单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.