У меня, похоже, проблема, за которую я застрял часами. Я запускаю программу, и она просто зависает после запроса ввода пользователя. Мой компьютер также начинает замедляться, если я не завершу программу. Я понятия не имею, в чем проблема. Я пробовал комментировать код, чтобы узнать, откуда эта проблема. Я поставил заявление cout после запроса ввода, и даже это не отображается.C++ Program loops forever
#include <iostream>
#include <vector>
#include <stdexcept>
#include <iomanip>
#include <cstdlib>
#include <array>
#include "problem2.h"
using namespace std;
int binarySearch(int array[], int input);
void selectSort(int arr[], int n);
int problem2() {
srand(time(0)); // generate seed based on current system time
int rand[20];
int result;
int input = 1;
cout << "Enter a number to search for: ";
cin >> input;
cout << "testset ";
for (int z = 0; z < 19; z++) {
rand[z] = random() % 70;
cout << rand[15];
}
selectSort(rand, 20);
for (int t = 0; t < 20; t++) {
//cout << random1D[z];
}
result = binarySearch(rand, input);
//cout << result;
return 0;
}
int binarySearch(int arr[], int a) {
int high = 19;
int middle = 19/2;
int low = 0;
while (arr[middle] != a && low<= high) {
if (arr[middle] > a) {
high = middle - 1;
} else {
low = middle - 1;
}
if (low > high) {
}
}
return middle;
}
void selectSort(int arr[], int n) {
int min, temp;
for (int i = 0; i < n-1; i++) {
min = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min])
min = j;
}
if (min != i) {
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
Это не похоже на хорошо сформированную программу, там нет 'main'. – kfsone
У вас есть цикл while, который продолжается до тех пор, пока вы не найдете значение в 'binarySearch', но вы не можете найти указанное значение, когда вы заполняете свой массив случайными значениями. –
@R_Kapp - это место на. Это было бы очевидно, если бы вы попытались использовать отладчик. Cout не отображается, потому что вывод все еще находится в выходном буфере. –