下面程序的运行结果为( )。

#include <iostream> int query(int n, int *a, int x) {   int l = 0, r = n;   while (l < r) {      int mid = l + (r - l) / 2;      if (a[mid] >= x) r = mid;      else l = mid + 1;   }    if (l == n) return -1;   return l;} int main() {   int n = 10;   int x = 3;   int num[] = {1, 2, 2, 3, 3, 4, 5, 5, 6, 7};    std::cout << query(n, num, x) << "\n";   return 0;}
填写答案