你只给一段代码不好判断啊,x,y,j的初始值是多少,数组又是多少?
不过从目前这段来看,while循环的执行条件是p<1,一直执行就证明p值没有增加,也就是最后那句 if(a[i]==4 && n==11) if(x>y) p+1; 没有被执行,它和a[i],n,x,y都有关系,你自己判断一下吧,或者把全部代码发出来
先关了死循环的程序,在把改程序修改,主要是要找到循环的终止条件,找出要满足你程序的一个条件,把它卸载循环内的话,用if 语句判断之后,满足你的限制条件之后,用 break,跳出循环,如果是用 for 循环,可以再循环的时候就设置循环的终止条件,for(AAA;BBB;CCC), 中的 表达式 BBB ,就是循环的终止条件;当然,在 for 循环中,可以省略表达式 BBB ;即 for(AAA; ; CCC) 并在循环体内,同样,用 条件判断,break跳出循环,总之,最主要的是,在你这个循环体内,要找出满足你程序的某些条件,用它来作为循环的限制条件。如:要找出1~100 之间的素数,那有一个限制条件就是 for(Int i=2,i<=100; i++) 其中的i<=100就是限制条件啦!^_^
1、检查程序是否有死循环:检查程序的控制流程,确定是否存在死循环,如果存在死循环,可以通过修改程序的控制逻辑来解决。
2、检查程序代码是否有错误:检查程序代码,确定是否存在语法错误或逻辑错误,如果存在,可以通过修改程序代码来解决。
3、检查程序运行环境是否正确:检查程序运行环境,确定是否存在软件或硬件问题,如果存在,可以通过修改程序运行环境来解决。
这要看你输入什么了。有一个要点:scanf()的返回值是它成功读入值的个数。如果你第一次输入一个整数,那么第一个scanf函数会成功读入一个整数,它的返回值就是1,即ret的值是1。那么for循环的关系表达式:ret!=1就不成立,整个循环就不会执行,程序直接停止。如果你第一次输入了非整数,那么第一个scanf函数成功读入的值就是0,它返回0,即ret = 0。此时for循环的关系表达式:ret!=1成立,for循环才会开始迭代。如果你的程序执行的时候一直在打印,不给你输入的机会,说明你清空输入缓冲区的函数fflush没起作用,缓冲区里保存的第一次非法输入一直都在。你把 fflush(stdin); 改成: while(getchar()!='\n'); 就好了。
以上就是关于c++,写了一个程序,while一直循环,求高手解决全部的内容,包括:c++,写了一个程序,while一直循环,求高手解决、C语言死循环怎么办、广数系统程序不循环怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)