问:既然while(1)是死循环,为什么运行时没有进循环而直接输出“YES”呢?
查看原帖
问:既然while(1)是死循环,为什么运行时没有进循环而直接输出“YES”呢?
1160343
iceflight楼主2024/8/3 22:06
#include<bits/stdc++.h>
using namespace std;
int main()
{
	char s[260];
	stack<char>k;
	int i=1,f=0;
	while(1)
	{
		cin>>s[i];
		if(s[i]='@')//如果出现@就跳出循环 
			break;
		if(s[i]=='(')
		{
			k.push(s[i]);//左括号进栈 
			f++;//左括号对应数加一 
		}
		if(s[i]==')')
		{
			f--;// 左括号对应数减一
			if(!k.empty())//在栈非空时左括号出栈 
			{
				k.pop();
			}
		}
	}
	if(k.empty())
	{
		if(f==0)//左右括号数相等且相互匹配 
			cout<<"YES";
		else
			cout<<"NO";
	}
	else
		cout<<"NO";
	return 0;
}
2024/8/3 22:06
加载中...