标题:[求助]为什么会出现死循环
取消只看楼主
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
 问题点数:0 回复次数:3 
[求助]为什么会出现死循环
当要求输入一个数学表达式时,判断其表达式是否符合要求,下列为什么会出现死循环呢?望指教~~~~
char p[max];
cin>>p;
i=strlen(p);
for(j=0;j<=i;j++)
{
if((p[j]>='0'&&p[j]<='9')||((p[j]=='+')||(p[j]=='-')||(p[j]=='*')||(p[j]=='/')||(p[j]=='(')||(p[j]=')')))
m=0;
else
{
m=1;
break;
}
}
2006-07-04 08:34
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
得分:0 

斑竹帮忙看一下啊!!!

2006-07-04 09:27
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
得分:0 
比较完成的代码是这样的,有一运行输入表达式以后就没有反应啊,请斑竹指点
int i,j=0,m=0;
char p[max];
cin>>p;
l:i=strlen(p);
for(j=0;j<=i;j++)
{
if((p[j]>='0'&&p[j]<='9')||(p[j]=='.')||((p[j]=='+')||(p[j]=='-')||(p[j]=='*')||(p[j]=='/')||(p[j]=='(')||(p[j]=')')))
m=0;
else
{
m=1;
break;
}
}
if(m==1)
{
cout<<"输入的表达式有错,请重新输入:";
cin>>p;
goto l;
}
else //调用别的函数
2006-07-04 09:45
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
得分:0 

谢谢斑竹指点,可以啦,
我设置的max是32767是整型中最大的数啊,我输入的一般不会超过那个范围啊
谢谢!!!!

2006-07-04 10:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-76391-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.580446 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved