gpt4 book ai didi

c++ - 将数组中的偶数正方形打印到单独的数组中

转载 作者:行者123 更新时间:2023-11-28 03:19:16 25 4
gpt4 key购买 nike

从主要功能:

for (int i = 0; i <= squaresLength; i++)
{
cout << arraySquares[i] << endl;
}
cout<<endl;

函数定义:

   void evenSquares(int arrIn[], int lengthIn, int arrOut[], int& lengthOut)
{
int i, j;
for (i=0; i<lengthIn; i++)
{
if (((arrIn[i]*arrIn[i])%2)==0)
{
for (j=0; j<lengthIn; j++)
{
{
arrOut[j]=(arrIn[i]*arrIn[i]);
}
}

}
lengthOut=j;
}

}

输出

25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
25600
0

我知道这个函数很乱。应该计算arrIn的每个元素的平方,然后将偶数平方存储在arrOut中,同时将lengthOut的新值设置为arrOut中偶数平方的个数。预先感谢您的帮助

最佳答案

这不会调用嵌套循环。您想要遍历输入数组并按比例将项目写入输出数组,因此只需要一个循环,以及对 arrOut 的一些仔细跟踪。的长度。

幸运的是,代替了j我们可以使用 lengthOut长度和索引,将元素添加到 arrOut .

lengthOut = 0;

for (i = 0; i < lengthIn; i++)
{
if ((arrIn[i] * arrIn[i]) % 2 == 0)
{
arrOut[lengthOut] = arrIn[i] * arrIn[i];
lengthOut++;
}
}

您还可以通过消除重复计算来改进这一点。

for (i = 0; i < lengthIn; i++)
{
int square = arrIn[i] * arrIn[i];

if (square % 2 == 0)
{
arrOut[lengthOut] = square;
lengthOut++;
}
}

另外,第一个for循环出现差一错误:<=应该是 < .

for (int i = 0; i < squaresLength; i++)
{
cout << arraySquares[i] << endl;
}

关于c++ - 将数组中的偶数正方形打印到单独的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936155/

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