gpt4 book ai didi

c++ - 对数组中的整数进行排序。但它不适用于某些情况

转载 作者:行者123 更新时间:2023-11-30 04:46:16 27 4
gpt4 key购买 nike

所以我写这个是为了在代码按升序时打印"is",在不是时打印“否”。但是如果我一开始就使用相同的值,程序会打印出不正确的结果。我不会不明白为什么即使不满足条件,if 语句也会运行。

#include <iostream>

using namespace std;

int main()
{
int N, i;
scanf("%d", &N);
int arr[N];

for(i = 1; i <= N; i++)
{
scanf("%d", &arr[i - 1]);
}

for(i = 1; i <= N; i++)
{

if(arr[i - 1] > arr[i])
{
printf("No");
return 0;
}
}

printf("Yes");

return 0;
}

最佳答案

您有一个错误,您跳过了数组的第一个元素并超过了最后一个元素。如果你的数组有 N元素,它来自 array[0]array[N-1] .在此处更改:

for(i = 1; i <= N; i++){

这里是:

for(i = 0; i < N; i++){

第二个for(i = 1; i <= N; i++)你在哪里检查可以从1开始因为你看arr[i - 1]内,但它应该是 i < N而不是 i <= N尽管如此。

此外,int arr[N];在 C++ 中不起作用(一些编译器会容忍它,但不是所有编译器)。尝试 std::vector<int> arr(N);相反。

关于c++ - 对数组中的整数进行排序。但它不适用于某些情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56869175/

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