// 定义函数,接收一个数组和一个整数,从数组中查找到第一个比给定的整数大的数的位置且返回。 #include using namespace std; void show(int arr[], int size) { int i = 0; while (i < size) { cout << arr[i] << " "; i++ } cout << endl; } // arr[] 是 int 类型的一维数组, 此形参准备从外部接收一个 int[] 类型的数组的首地址 int find(int arr[], int n, int size) { for (int i = 0; i < size; i++) { if (arr[i] > n) return i; // 结束循环、结束函数并返回 i } return -1; } int main() { int arr[] = {1, 2, 3, 0, 5, 7}; // 完全初始化 // [注意] 计算数组的长度, 在定义数组的区域可以计算, 如果作为参数传递, 就无法计算了 // 这是因为数组作为参数传递时, 会退化为指针, 无法计算长度; // 如果改为指针, 就可以计算长度了, 但是指针无法初始化, 所以必须在定义时初始化 int len = sizeof(arr) / sizeof(arr[0]); cout << "--- main() ---" << endl; show(arr, len); int n = 0; cout << "查找的数:"; cin >> n; int index = find(arr, n, len); if (index == -1) cout << "没有找到" << endl; else cout << "找到了,位置是:" << index << ", 第一个比" << n << "大的数是:" << arr[index] << endl; return 0; }