gpt4 book ai didi

c++ - CodeBlocks 和 Visual Studio 2019 中的不同结果

转载 作者:行者123 更新时间:2023-11-30 03:14:48 27 4
gpt4 key购买 nike

我使用 CodeBlocks 编写了这个程序:

#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int main()
{
ifstream is;
is.open("game.inp");
int n,a[100];
is>>n;
for (int i=0; i<n; i++)
is>>a[i];
is.close();
int game[100];
int kt=0;
for (int i=0; i<n; i++)
{
for (int j=3; j<a[i]+1; j++)
{
if ((a[i]%j)==0)
{
int *x = find(begin(game),end(game),j); //ktra uoc hien tai da co trong mang hay chua, k co thi ms them
if (x==end(game))
{
game[kt]=j;
kt++;
}
}
}
}
int kq=0;
for (int i=0; i<kt; i++)
{
int d=0;
for (int j=0; j<n; j++)
{
if ((a[j]%game[i])==0)
d++;
}
if (d>kq)
kq=d;
}
ofstream o;
o.open("game.out");
o<<kq;
o.close();
return 0;
}

结果不正确。然后我决定将这些代码复制到 Visual Studio 2019,它给了我正确的结果。我不知道发生了什么事。我将相同的代码从 CodeBlocks 复制到 VS,结果完全不同。

最佳答案

欢迎来到undefined behavior的精彩世界| .

您在 game 初始化数组之前使用它的内容。局部变量未初始化,它们的内容不确定并且使用不确定值会导致未定义的行为。

如果您希望将数组初始化为全零,您需要明确地执行此操作:

int game[100] = { 0 };

关于c++ - CodeBlocks 和 Visual Studio 2019 中的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57477968/

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