注册 登录
编程论坛 C++教室

我写了个匹配括号代码,请各位大神帮忙看看

bellaL 发布于 2016-10-21 20:37, 1095 次点击
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main()
{
int n,ans;
char a[10001];
scanf("%d",&n);
gets(a);
for(int i;i==0;i++)
{
if(a[i]='[')
ans++;
if(a[i]='[')
ans--;
}
if(ans==0) printf("YES");
else printf("NO");
return 0;
2 回复
#2
rjsp2016-10-21 21:07
for(int i;i==0;i++) 是错的,我猜你想要的是 for( size_t i=0; a[i]!='0'; ++i )
if(a[i]='[') ans--; 我猜你想要的是 if(a[i]=']') --ans;
ans 使用前也没赋值,我猜你想要的是 int ans=0;
n 不知道有什么用,你也不肯贴题目

算法也是错的,你只判断了 '[' 和 ']' 数目是否相等,假如我输入“][”,你肯定也判断其正确,但却是错误的

说说更多的,#include<iostream> 没有使用到,using namespace std;也没使用到,gets这个函数早就被C/C++废弃掉了,反正一塌糊涂就对了
#3
yangfrancis2016-10-21 21:25
回复 楼主 bellaL
if条件要==
1