gpt4 book ai didi

c - 尝试查找 int 数组的元素是否等于在 C 中输入的数字

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:28 24 4
gpt4 key购买 nike

我正在尝试使用 for 循环遍历整数数组的元素,并查明该数组中的特定元素是否等于某个其他整数。

这是我得到的,但它似乎不起作用:

int squaresArray[1000];
int numberOfSquares = 1000;
int i = 0;

for (i; i<=numberOfSquares; i++)
{
squaresArray[i] = i*i;
if (number == squaresArray[i]){
printf("%d is a perfect square\n", number);}
break;
}

根据我对 for 循环的了解,这应该可以工作,但即使数字应等于数组的某个元素,它也不会打印任何内容。

最佳答案

由于错位的括号(即 break 不在 if 声明的范围内),您在第一次迭代时中断了。将其更改为:

if (number == squaresArray[i]) {
printf("%d is a perfect square\n", number); // no closing bracket here
break;
} // <--

此外,您的循环条件可能应该是 i < numberOfSquares .毕竟,numberOfSquares ( 1000 ) 是长度为 1000 的数组的越界索引。此外,如果您已经声明/初始化了 i,则不需要循环初始化语句。在循环的封闭范围内。因此,我们剩下

int i = 0;

for (; i < numberOfSquares; i++)

如果您使用的是 C99 及更高版本,您可以限制 i 的范围只有循环,这应该是首选:

for (int i = 0; i < numberOfSquares; i++)

关于c - 尝试查找 int 数组的元素是否等于在 C 中输入的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19203386/

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