経験が豊富な人は誰でも私のコードを手伝いたいですか? あなたが7トライの下で入力して1〜100の数を推測することになったが、「numは」の高い「半ば」よりを取得するとき、それはのループでスタックを取得していますすべてのバイナリ検索プログラムの作成を手助けする必要があります
#include <iostream>
#include <time.h>
int low = 0;
int high = 99;
int mid = low + high/2;
int num[100];
int x = 0;
int in_num;
int tries;
int main(){
//Counts all the number in num[] up to 100
while(x != 100){
num[x] = x + 1;
x += 1;
}
std::cout << "Please enter a number between 1 and 100." << std::endl;
std::cin >> in_num;
in_num -= 1;
while(mid != num[in_num]){
if(mid > num[in_num]){
tries += 1;
high = mid - 1;
}
if(mid < num[in_num]){
tries += 1;
low = mid + 1;
}
mid = low + high/2;
std::cout << mid << std::endl;
}
if(mid = num[in_num]){
std::cout << "Yay i did it with: " << tries << " tries" << std::endl;
}
return(0);
}
デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。詳しい読書:** [小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver
私は答えをチェックアウトしますappriciate。 – Macronical
また、入力が1から100の間であることを検証する必要があります。ユーザーがこの範囲外の値を入力した場合、コードには未定義の動作があります。 – drescherjm