私はC++プログラミングの初心者であり、現在プログラミングの入門としてクラスを受講しています。私は現在、10個の整数を入力し、数字が昇順であるかどうかを判断する宿題プロジェクトに取り組んでいます。
私が抱えている問題は、提供された入力に関係なく、プログラムは常にアセンションがあると見なしているということです。問題はIsInOrder()関数のforループにあると思いましたが、正確に機能しない理由や修正方法がわかりません。
もう1つの潜在的な問題は、すべての値のアセンションを決定する方法です。たとえば、コードが機能した場合、[1、2、3、4、5、1、2、3、4、5]はアセンションとしてカウントされると思いますが、そうではありません。
オンラインで検索してみたところ、同様の課題の質問がいくつか見つかりましたが、これらの問題に対する答えはありません。
これが私がこれまでに持っているコードです:
#include <iostream>
using namespace std;
bool IsInOrder (int numHold[]);
//This portion takes the numeral inputs and outputs the answer
int main()
{
int numHold[10];
bool status;
cout << "Welcome to the Ascension detector 5000" << endl;
cout << "This program will detect whether the numbers you input are in ascending
order" << endl;
cout << "Isn't that neat?" << endl <<endl;
for (int i=0; i < 10;i++)
{
cout << "Please enter a number: ";
cin >> numHold[i];
}
cout << endl;
for(int i=0;i < 10;i++)
{
cout << numHold[i] << endl;
}
status = IsInOrder(numHold);
if (status == true)
{
cout << "The numbers are in ascending order" << endl;
}
else
{
cout << "The numbers are not in ascending order" << endl;
}
system("PAUSE");
return 0;
}
//This function determines whether the inputs are in ascending order
bool IsInOrder (int numHold[])
{
for (int i = 0; i < 10; i++)
{
if (numHold[i] < numHold [i++])
{
return false;
}
else
{
return true;
}
}
}
事前に助けに感謝し、コードが適切にフォーマットされていない場合は申し訳ありませんが、コードはコードサンプルにコピー/貼り付けされていませんでした。