for loop 改称 while loop 出错

for (int i = 0; i < MAX; ++i) {

for (int j = MAX-1; j > i; --j) {

if (A[j] < A[j-1]) {

// swap(A[j], A[j-1]);

temp = A[j];

A[j] = A[j-1];

A[j-1] = temp;

}

}

}
我这个这个for loop 改成了

int i = 0;

int j = MAX - 1;

while (MAX - i > 0) {

while (j - i > 0) {

if (A[j] - A[j-1] < 0) {

temp = A[j];

A[j] = A[j-1];

A[j-1] = temp;

}

j--;

}

i++;

}

输出不一样,不知道是哪里出了问题,麻烦指教一下,先谢了~

int j =  MAX - 1;


放到第一个循环里面,


原因:for时候每次都会对j初始化,while时候没有

int i = 0;


while (MAX - i > 0) {

   int j =  MAX - 1;
       while (j - i  > 0) {

温馨提示:内容为网友见解,仅供参考
无其他回答

请问怎麼把for loop转换成 While loop,请高手帮忙,非常感谢
while($myVar<100){ echo 'Paragraph'.$myVar.'';myVar = $myVar*$myVar;myVar++;} ?> 至于那第二个…本来不就是While loop?如果是要改成for的话,如下:function secretFunctionFor($someNumber){\/\/功能是把一个数字的每一位的数累加起来 y = 0;for($i = $someNumber;$i>=1;$i=$i...

C语言把FOR修改成WHILE语句
所有的for都可以写成while...比如:for(I=初值;I<末值;I+=步频){ 循环体 } 都可以变成:I=初值;while(I<末值){ 循环体 I+=步频;} 所以可以改成:define max_number 100 define TRUE 1 define FALSE 0 include<stdio.h> using namespace std;void main( ){ int i ;int j ;i...

verilog case语句中while循环会出错
while要在always过程语句里,然后循环语句的循环次数必须是定值,不一定是常数,但是综合器要求知道其循环了几次,因为在电路里循环语句是要展开的。你这个改成if不就好了?

oracle的loop怎么跳出循环
loop循环有3种 第一种直接loop 用exit when 退出 第二种是for loop 他用 for i in ... loop 第三种是while loop

...出错: error: break statement not within loop or switch
while循环后面多了个分号,导致后面的循环内容不在循环里面,造成break处出现错误。break statement not within loop or switch意思是:break语句不在循环内。for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环...

在for循环中允许使用嵌套循环但只能是嵌套for循环?
是的,在for循环中可以使用嵌套for循环。不过,在一个for循环中嵌套其他类型的循环是可以的,比如while循环 for i in range(10):for j in range(10):print(i, j)nested while loop k = 0 while k < 10:print(i, k)k += 1 在这个例子中,我们在一个for循环中嵌套了另一个for循环和一...

VFP中DO WHILE循环 执行到LOOP是跳到DO WHILE ,接着还会不会继续执行DO...
这要看do while 后面的条件 如果满足条件,则继续执行do while 内的循环体 否则,不执行,退出循环

...程序为什么在最后用goto循环程序就不对了,换while循环也不对_百度知...
goto语句实在 if块中,如果想达到循环,则必须保证程序运行过程中,能够走进if块,这样才能执行到goto语句,否则就跳过了

while循环和for循环的区别?
这两个死循环的区别是:while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-Lint就会认为出错了,因此构造死循环时,最好使用for(;;)来进行。2.两种循环在普通循环时的区别 对一个数组进行循环时,一般来...

oracle中的for loop循环利用游标,如for R in C loop,对应的在sqlserver...
在sqlserver中可以这样来写:open 游标 fetch next from 游标 into 变量 while @@fetch_status=0 begin 处理过程 end;close 游标 deallocate 游标;大致就是这样一个过程,具体可以看帮助啊

相似回答
大家正在搜