gpt4 book ai didi

c++:无法检测数组中数字的提升

转载 作者:行者123 更新时间:2023-11-30 04:22:31 25 4
gpt4 key购买 nike

我是 C++ 编程的新手,目前正在上一门编程入门类(class)。我目前正在做一个家庭作业项目,我输入 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;
}
}
}

提前感谢任何帮助,如果代码格式不正确,代码没有很好地复制/粘贴到代码示例中,我们深表歉意。

最佳答案

IsInOrder函数,循环运行直到i<9并删除 else 部分并放入 return true外面for循环。

为什么 return true在 for 循环之外?

因为返回 true仅当您检查所有元素时,而不是每次都检查。看看您的代码,您就会明白。

关于c++:无法检测数组中数字的提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13775564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com