gpt4 book ai didi

c - C编程中如何在FOR循环中传递多次初始化、条件、递增?

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:20 25 4
gpt4 key购买 nike

为了搜索数组中的元素,我将大小为 20 的数组分成两部分。a 将从 0-9 搜索,b 将从 10-19 搜索。但是这段代码不起作用。它有什么问题?

 for(  a=0,b=10; a<9,b<20 ; a++,b++ )
{
if(x[a]==n)m=a;break;
if(x[b]==n)m=b;break;
if(x[c]==n)m=c;break;
if(x[d]==n)m=d;break;
}

最佳答案

您的代码中的一个问题是在 for 的情况下环形。应该是:

for (a = 0, b = 10; a < 9 && b < 20; a++, b++) { ... }

注意 &&a < 9 之间和 b < 20 .

你的for也有逻辑缺陷环形。事实上,对于循环的每次迭代,ab增加 1。这意味着当 a = 9 , 然后 a < 9将是 false , 和 for循环停止。但是,当a = 9 , 然后 b = 19 , 所以你永远不会看 x[19]因为循环已经结束。

我认为正确的条件是:a < 10 && b < 20 .

事实是,您并不真的需要两者 ab .看下面的例子:

for (a = 0; a < 10; a++) {
if (x[a] == n || x[a + 10] == n) {
m = a;
break;
}
}

此外,当您在 if 中有多个语句时 block ,您必须将它们包装在 { ... } 中括号。

// Incorrect
if (x[a] == n) m = a; break;

// Correct
if (x[a] == n) {
m = a;
break;
}

// Also correct
if (x[a] == n) { m = a; break; }

正如其他用户所指出的,您使用 cd在你的循环中,但它们是什么?

关于c - C编程中如何在FOR循环中传递多次初始化、条件、递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45265016/

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