51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
|
|
// 定义函数,接收一个数组和一个整数,从数组中查找到第一个比给定的整数大的数的位置且返回。
|
|
#include <iostream>
|
|
|
|
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;
|
|
} |