c语言中 为什么有时候输入.就陷入死循环了???

c语言中为什么有时候输入.就陷入死循环了???... c语言中 为什么有时候输入.就陷入死循环了??? 展开
 我来答
为妃_作歹
2011-05-07 · TA获得超过139个赞
知道答主
回答量:46
采纳率:0%
帮助的人:45.5万
展开全部
那要看你输入的是什么,还有具体问题具体分析。
比如说有的时候让你输入除数,你输入了0。0是不能做除数的,而你的程序中又没有列出当用户输入0时,程序应该干什么,是应该报错呢,还是当做1处理呢。计算机不知道该怎么做,他只知道0不能做除数,那么结果就不能被计算出来,所以程序就只能等在哪个地方,也就是死循环了。
类似的,比如你让用户输入一个数字,你规定当用户输入 1 时,就执行程序 1 ,当用户输入 2 时,就执行程序 2 。就只有这两种情况,可是如果用户输入的是 3 或者其他的什么数时,那应该执行什么呢?你没说,计算机就更不知道了。除了死循环还能干什么呢?
再比如说你程序本身逻辑上的错误如 for(int i=10;i<11; )
{
sum=sum+i;
}
这个 for 循环中 i 始终不变,而且 i 始终满足循环条件,那么当程序执行时就永远陷在这个循环中出不来了,也就是死循环,这应该叫临界条件不明确。
还有的时候,计算量太大,比如调用递归函数太多,计算比较慢,你也可能认为是陷入死循环了。也有是因为计算机系统本身的原因。不过这种情况比较少。
总的来说就是编程序的人考虑不够周全,如果把所有的情况都考虑进去,让每种情况都能执行下去,就基本上不会出现死循环了。
解决办法嘛,第一种,你可以在程序中把用户输入的数据先判断一下是不是0,如果是就报错,不是就继续执行。 第二种,你可以给出其他情况的解决办法, switch 语句不就是这样吗,每一个 case 值都给出一种执行语句,最后还要有一个 default 语句来预防个别想不到的情况吗?其实思想都是相同的。 第三种的话,没办法,你只能是在写程序的时候认真点,写完后在认真检查一下。其实归根结底还是你想到想不到的问题。
基本上就这么多了,考虑周全一点,我是不是常说吗,不要把你的客户当成比你还厉害的人,要把客户想的最傻,你才能编写出最完美的程序来。
希望能对你有所帮助,加油!!
qiufeng1100
2011-05-07 · TA获得超过422个赞
知道小有建树答主
回答量:332
采纳率:20%
帮助的人:141万
展开全部
我也不明白这点,也遇到过这样的事,以我的推测吧!就是当输入数据类型与需要的数据类型不一样时,就产生输入异常,但C语言里本身没有处理异常的能力,从而导致程序异常,时而死循环,或而程序异常退出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinghai1990816
2011-05-08
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
看下循环的条件是不是一直满足,如果是的话,就去修改下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jqpwoihf93pq
2011-05-07 · TA获得超过153个赞
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
那要看你写了什么代码了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Gavin_zl
2011-05-07
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
应该是你写的语句不正确导致死循环,
你的问题问的很不清晰
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式