#include <iostream> #include <cstdio> #include <cstdlib> #include <ctime> using namespace std; void RAND(int a[]) { srand(time(NULL)); for (int i = 0; i < 20; i++) { a[i] = rand() % 100 + 1; } } void OUTPUT(int a[]) { for (int i = 0; i < 20; i++) { printf("%5d\t", a[i]); if ((i + 1) % 10 == 0) cout<<endl; } } void Bubble(int a[]) { for (int i = 0; i < 19; i++) { for (int j = 0; j < 19 - i; j++) { if (a[j] > a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } void BinSearch(int a[], int x) { int low = 0, high = 19; while (low <= high) { int mid = (low + high) / 2; if (x == a[mid]) { printf("查找成功,数字%d在第%d个位置", x, mid + 1); return; } else if (x < a[mid]) { high = mid - 1; } else { low = mid + 1; } } cout << "没有找到该数字" << endl; return; } int main() { int a[1000]; RAND(a); //随机生成20个数 Bubble(a); //对前20个数排序 OUTPUT(a); //打印输出前20个数 int x; cout << "请输入需要查找的数字" << endl; cin >> x; BinSearch(a, x); //在数组a的前20个数中查找元素x return 0; }对这个代码进行注释
时间: 2024-03-24 11:35:56 浏览: 63
好的,这是一个 C++ 的程序,下面是对每个函数的注释:
```c++
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime> // 包含时间头文件,用于生成随机数种子
using namespace std;
void RAND(int a[]) { // 随机生成 20 个数,并存储到数组 a 中
srand(time(NULL)); // 用当前时间作为随机数种子
for (int i = 0; i < 20; i++)
{
a[i] = rand() % 100 + 1; // 生成 1-100 之间的随机数,存储到数组 a 中
}
}
void OUTPUT(int a[]) { // 打印输出数组 a 中的元素
for (int i = 0; i < 20; i++)
{
printf("%5d\t", a[i]); // %5d 表示占 5 个字符位,不足则用空格补齐,\t 表示一个制表符
if ((i + 1) % 10 == 0) // 每输出 10 个元素,换行
cout<<endl;
}
}
void Bubble(int a[]) { // 冒泡排序,对数组 a 中的元素进行排序
for (int i = 0; i < 19; i++) {
for (int j = 0; j < 19 - i; j++) {
if (a[j] > a[j + 1]) { // 如果前一个元素大于后一个元素,则交换两个元素
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
void BinSearch(int a[], int x) { // 二分查找,查找数组 a 中是否存在元素 x
int low = 0, high = 19; // low 和 high 分别表示查找范围的起始位置和结束位置
while (low <= high)
{
int mid = (low + high) / 2; // 取中间位置
if (x == a[mid]) // 如果中间位置的元素等于 x,则查找成功
{
printf("查找成功,数字%d在第%d个位置", x, mid + 1);
return;
}
else if (x < a[mid]) // 如果 x 小于中间位置的元素,则继续在左侧查找
{
high = mid - 1;
}
else // 如果 x 大于中间位置的元素,则继续在右侧查找
{
low = mid + 1;
}
}
cout << "没有找到该数字" << endl; // 如果查找失败,输出提示信息
return;
}
int main() {
int a[1000]; // 定义一个数组 a,用于存储生成的随机数
RAND(a); // 随机生成 20 个数,并存储到数组 a 中
Bubble(a); // 对数组 a 中的前 20 个数进行排序
OUTPUT(a); // 打印输出数组 a 中的前 20 个数
int x;
cout << "请输入需要查找的数字" << endl;
cin >> x;
BinSearch(a, x); // 在数组 a 的前 20 个数中查找元素 x
return 0;
}
```
阅读全文