复制
收藏
提问
简洁
使用C++程序,键盘上任意顺序输入15个整型数据,将数组元素按降序排列。再读入一个整数m,使用折半查找方法,查找m是否在数组中。若在,输出其位置;若不在,输出“no"。 实验要求: 使用多文件程序结构,函数的声明在 experiment4_3.h文件中,函数的定义在 experiment4_3.cpp文件中,函数的测试在 main4_3.cpp文件中。
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
要使用C++程序完成这个实验,你需要按照以下步骤进行:
-
定义头文件 (
experiment4_3.h
):在这个文件中,你需要声明所有将要使用的函数。例如,你可能需要声明一个用于输入数据的函数、一个用于降序排序的函数,以及一个用于折半查找的函数。 -
实现函数 (
experiment4_3.cpp
):在这个文件中,你将实现头文件中声明的所有函数。例如,你可以使用选择排序算法来实现降序排列,使用折半查找算法来实现查找功能。 -
编写主函数 (
main4_3.cpp
):在这个文件中,你将调用上述实现的函数来完成整个程序的流程。
下面是一个简单的示例,展示如何实现这个实验:
experiment4_3.h
#ifndef EXPERIMENT4_3_H
#define EXPERIMENT4_3_H
void inputArray(int arr[], int size);
void selectionSortDescending(int arr[], int size);
int binarySearch(int arr[], int size, int value);
void printArray(int arr[], int size);
#endif // EXPERIMENT4_3_H
experiment4_3.cpp
#include "experiment4_3.h"
#include <iostream>
void inputArray(int arr[], int size) {
for (int i = 0; i < size; ++i) {
std::cin >> arr[i];
}
}
void selectionSortDescending(int arr[], int size) {
for (int i = 0; i < size - 1; ++i) {
int maxIndex = i;
for (int j = i + 1; j < size; ++j) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
if (maxIndex != i) {
std::swap(arr[i], arr[maxIndex]);
}
}
}
int binarySearch(int arr[], int size, int value) {
int low = 0, high = size - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == value) {
return mid; // 找到值,返回位置
} else if (arr[mid] < value) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return -1; // 未找到值,返回-1
}
void printArray(int arr[], int size) {
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << std::endl;
}
}
main4_3.cpp
#include "experiment4_3.h"
#include <iostream>
int main() {
int arr[15];
int m, position;
std::cout << "请输入15个整数,每输入一个整数按一次回车:" << std::endl;
inputArray(arr, 15);
selectionSortDescending(arr, 15);
printArray(arr, 15);
std::cout << "请输入一个整数m进行查找:" << std::endl;
std::cin >> m;
position = binarySearch(arr, 15, m);
if (position != -1) {
std::cout << "m在数组中的位置是:" << position << std::endl;
} else {
std::cout << "no" << std::endl;
}
return 0;
}
请注意,这个示例仅用于演示如何组织代码和实现基本功能。实际的实现可能需要更多的错误检查和优化。此外,根据你的具体要求,可能还需要对输入进行验证,确保输入的是整数。89
你觉得结果怎么样?