为什么是死循环??

问题描述

#include<stdio.h>main(){ int x=0,y=0; char i='y',j=''; printf("hello world!n"); while(i=='y')  {         printf("enter x and ynx=");  scanf("%d",&x);  printf("y=");  scanf("%d",&y);  if (x==y)   printf("x=y, no maximum.n");  else if (x>y)   printf("x>y, x is the maximum.n");  else    printf("x<y, y is the maximum.n");    printf("enter 'y' or 'Y' to continue.nand press others to quiet...nyour choose is...");    scanf("%c",&j);  if (j=='y')   i='';   printf("n*************************n");      } }为什么是死循环??scanf("%c",&j);怎么没有执行到??求解。 问题补充:<div class="quote_title">liukai 写道</div><div class="quote_div">你定义了i=='y'这个条件<br />while(i=='y')<br />说明只要i=='Y'里面的语句就执行 而你定义的条件又满足这个<br />所以是死循环</div><br />这个i是来控制何时跳出循环的<br />

解决方案

#include<stdio.h>int main(){ int x=0,y=0; char i='y',j=''; printf("hello world!n"); while(i=='y') { printf("enter x and ynx="); scanf("%d",&x); getchar(); printf("y="); scanf("%d",&y);getchar(); if (x==y) printf("x=y, no maximum.n"); else if (x>y) printf("x>y, x is the maximum.n"); else printf("x<y, y is the maximum.n"); printf("enter 'y' or 'Y' to continue.nand press others to quiet...nyour choose is..."); scanf("%c",&j);getchar(); if (j != 'y' && j != 'Y') i=''; printf("n*************************n"); } }这样就可以了,原因是scanf过滤空格、制表符、回车,当你输入数字的时候敲了回车。getchar就读到了你最后敲的那个回车符了。
解决方案二:
你定义了i=='y'这个条件while(i=='y')说明只要i=='Y'里面的语句就执行 而你定义的条件又满足这个所以是死循环

时间: 2024-09-18 18:09:54

为什么是死循环??的相关文章

我的代码是怎么进入死循环的,为什么有两个线程运行一会就唤不醒了

问题描述 classResource{privateStringname;privateintcount=1;privatebooleanflag=false;publicsynchronizedvoidset(Stringname){while(flag){notify();try{wait();}catch(InterruptedExceptione){}System.out.println(Thread.currentThread().getName()+"....循环唤醒..."

java-关于Myeclipse中死循环退出的问题。

问题描述 关于Myeclipse中死循环退出的问题. 有三段死循环代码 1. public void Method() { int i = 1; while(i <= 9 ) { int j = 1; while(j<=i) { System.out.print(i*j); System.out.print("t"); j++; j = 1; //死循环 } i++; System.out.println(); } } 2. public void Method() { f

java循环集合-java中死循环是什么意思

问题描述 java中死循环是什么意思 java中死循环是什么意思 循环一次不再循环是死循环还是不断循环才是死循环能否简单的举个死循环单身例子 解决方案 死循环就是循环语句的条件是永远为真,那么循环体将一直执行,一楼说的并不对,循环不一定会导致内存溢出的,只是Java程序一直运行.简单的死循环实例while(true){某个操作,但是没有break语句}循环体中也没有终止循环的break,就是死循环了. 解决方案二: 不断循环直到你內存溢出 解决方案三: while(true){System.ou

浅谈百度进入搜索死循环的原因

一次闲着没事干,在百度搜索框里输入了这样的一串字符:site:www.baidu.com.然后搜索结果出现了这些: 由图片可知,百度搜索引擎收录了如此多的页面,百度制造这种内容的用意是什么?不会是为了提高用户的体验度吧?我可不这么认为,我倒觉得百度为了让用户多一次的点击那些原来的百度搜索页面.如果百度将这一恶性做法循环下去,那么百度将持续提供这样的搜索结果,导致用户将进入一个死循环的状态当中,只会让用户循环访问这样的页面,让用户抓狂,直到一气之下离开百度.其实让用户进入死循环只是一个表面现象,大

delphi死循环的控制权转让

有时我们会执行一些如While.For等循环语句,这些语句如果计算时间非常长,那么就会占用了CPU的处理权,无法再运行其他程序,照成死循环. 所以必须让CPU避开循环,转让控制权,让操作系统可以同时处理多个事件,只需要在循环前执行一下以下语句即可: Application.ProcessMessages;

.Net下跟踪线程挂起和程序死循环

.Net 下的程序调试相对C/C++要简单很多,少了那些令人头疼的指针越界的问题.不过当你的程序遇 到如下问题时,依然非常棘手: 1. 进程异常终止.解决方案见 .Net 下未捕获异常的处理 2. 内存泄漏或者内存申请后程序始终没有释放.解决方案见 用 .NET Memory Profiler 跟踪.net 应 用内存使用情况--基本应用篇 .如果通过自己编写的程序监控,我将在以后的文章中阐述. 3. 线程因未知原因挂起,比如死锁. 4. 程序死循环. 本文将阐述如果编写程序对后两者故障实时跟踪

ubuntu不能登陆死循环怎么办

  ubuntu不能登陆死循环问题解决 前段时间在电脑上装win7+ubuntu双系统,之后在ubuntu上搭建java开发环境,安装jdk.tomcat.eclipse.mysql等并配置环境变量,等全部弄完之后ubuntu竟然莫名其妙的重启了,然后到了登陆页面,输入用户名.密码登陆不进去,提示信息一闪而过,就这样一直死循环在登陆,不知道啥原因,于是google了一下,终于找到了原因,是JDK环境变量配置的有问题, 以下是解决办法: 在登录画面,按alt+ctrl+f2进入tty2, 由于没设

使用GDB调试PHP代码,解决PHP代码死循环问题

 最近在帮同事解决Swoole Server问题时,发现有1个worker进程一直处于R的状态,而且CPU耗时非常高.初步断定是PHP代码中发生死循环. 下面通过一段代码展示如何解决PHP死循环问题.   代码如下: #dead_loop.php $array = array(); for($i = 0; $i < 10000; $i++) { $array[] = $i; } include __DIR__."/include.php"; #include.php while(

Linux系统下用户进程死循环问题解决方法

在进行Linux系统操作的时候,有时候会遇到一次用户态进程死循环,即系统反应迟钝.进程挂死等问题,那么遇到这些问题又该如何解决呢?下面小编就给大家介绍下一次用户态进程死循环的问题该如何处理. 1.问题现象 业务进程(用户态多线程程序)挂死,操作系统反应迟钝,系统日志没有任何异常.从进程的内核态堆栈看,看似所有线程都卡在了内核态的如下堆栈流程中: [root@vmc116 ~]# cat /proc/27007/task/11825/stack [<ffffffff8100baf6>] reti

java-两个互相引用的类,用工厂模式创建时,死循环的问题

问题描述 两个互相引用的类,用工厂模式创建时,死循环的问题 假设有电脑.人 这么两个类如图所示.class person{ computer myComputer;} class computer{ person myOwner;} 用工厂模式 如果我要创造小明这个人,那么我要用人的工厂去创造小明,在创造的时候我要set他有个HP电脑,那么我又要用电脑工厂去创造HP电脑.但是创造HP电脑的时候我又要去用人的工厂创造小明这个人,这不就是循环下去了吗?所以我纳闷了,1要么这样设计类是不正确的,2要么