gpt4 book ai didi

c++ - 随机数输入 425500

转载 作者:行者123 更新时间:2023-11-28 01:35:10 25 4
gpt4 key购买 nike

我正在开发一个数组程序,用于在删除重复项后重新排序数组。

 #include <iostream>
#include <string>

using namespace std;

int main(){

int x;
int y;
int z;
int ArrayLength;
int tempArrayValue;

//prompt for array length
cout << "How many numbers do you want the array to be?" << endl;
cin >> ArrayLength;

//initialize array
int D[ArrayLength];

//Put values into each element of the array
for (int a = 0; a < ArrayLength; a++)
{
cout << "Enter in Values." <<endl;
cin >> tempArrayValue;
D[a] = tempArrayValue;
cout << endl;
}

//compare each element
for (int x = 0; x < ArrayLength; x++)
{

for (int y = x + 1; y < ArrayLength; y++)
{
if (D[x] == D[y])
{
D[y] = 0;
}

//system("PAUSE");

for (z = 0; z < ArrayLength; z++)
{
if (D[z] == 0)
{
D[z] = D[z+1];
D[z+1] = 0;
//cout << D[z];
}
}



}


}
cout << D[0] << endl << D[1] << endl << D[2] << endl << D[3] << endl << D[4] <<endl << D[5] <<endl;
}

我得到输出:

How many numbers do you want the array to be?
6
Enter in Values.
1

Enter in Values.
1

Enter in Values.
2

Enter in Values.
9

Enter in Values.
4

Enter in Values.
9

1
2
9
4
4255009
0

令我困惑的是:那个大数字到底在做什么?我认为九可能是我输入的最后一个数字,替换第一个数字效果很好,但第二个重复数字有问题。我推测它可能与编译器有关,还有一些其他编译器,我现在正在使用 dev-c++。

最佳答案

D[z+1] 可以访问已分配数组的末尾,导致未定义的行为。

此外,声明 int D[ArrayLength](可变长度数组)是一些编译器支持的非标准扩展,不会在任何地方编译。您应该改用 std::vector

关于c++ - 随机数输入 425500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49642391/

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