我是 C++ 编程的新手,目前正在上一门课程作为编程入门。我目前正在做一个家庭作业项目,我输入 10 个整数并确定这些数字是否按升序排列。
我遇到的问题是程序总是认为有提升,无论提供什么输入。我认为问题出在 IsInOrder() 函数的 for 循环中,但是我无法弄清楚它到底为什么不起作用或如何修复它。
另一个潜在问题是如何确定所有值的提升,例如,如果我的代码有效,我认为它会将 [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;
}
}
}
提前感谢任何帮助,如果代码格式不正确,代码没有很好地复制/粘贴到代码示例中,我们深表歉意。