我有这段代码
if(orden[i]==1)
for(i=0; i<ARRAY_SIZE; i++)
if(v[i]<v[i+k])
printf("print once ");
如果满足for循环中的条件,我怎样才能使它只打印一次线?
答案 0 :(得分:3)
使用break
命令退出for
循环。
if(orden[i]==1)
for(i=0; i<ARRAY_SIZE; i++)
if(v[i]<v[i+k])
{
printf("print once ");
break;
}
答案 1 :(得分:2)
我建议您先更改索引变量,以免混淆。我建议使用i
和j
。代码可能或多或少地形式:
if(orden[i]==1)
for(j=0; j<ARRAY_SIZE; j++)
if((j==0)&&(v[j]<v[j+k]))
printf("print once ");
答案 2 :(得分:1)
如果v [i]不比v [i + k]大,则退出'while'而不是打印你的值:
while ((i < ARRAY_SIZE) && (v[i] > v[i+k])) {
i++;
}
printf("print once ");
替代方案你可以使用布尔变量,但不是内存原因的最佳解决方案。