括号匹配
2016-04-05 17:48
309 查看
#include<iostream>
using namespace std;
class lilang{
public:
lilang(){
b1=0;c1=0;
b2=0;c2=0;
b3=0;c3=0;
b4=0;c4=0;
b5=0;c5=0;
b6=0;c6=0;
b7=0;c7=0;
b8=0;c8=0;
}
void Input(){
for(int i=0;;i++)
{
cin>>a[i];
if(a[i]=='#')
break;
}
}
void Check(){
for(int i=0;a[i]!='#';i++)
{
switch(a[i])
{
case '{':b1++;c1=i;break;
case '}':b2++;c2=i;break;
case '[':b3++;c3=i;break;
case ']':b4++;c4=i;break;
case '(':b5++;c5=i;break;
case ')':b6++;c6=i;break;
case '<':b7++;c7=i;break;
case '>':b8++;c8=i;break;
}
}
if((b1==b2)&&(b3==b4)&&(b5==b6)&&(b7==b8))
cout<<"right"<<endl;
if((b1+b3+b5+b7)>(b2+b4+b6+b8))
{
cout<<"loss of right character ";
if(b1>b2)
cout<<"}";
if(b3>b4)
cout<<"]";
if(b5>b6)
cout<<")";
if(b7>b8)
cout<<">";
cout<<"."<<endl;
}
else if((b1+b3+b5+b7)<(b2+b4+b6+b8))
{
cout<<"The ";
if(b1<b2)
{
cout<<c2+1;
cout<<" character '}' is wrong."<<endl;
}
if(b3<b4)
{
cout<<c4+1;
cout<<" character ']' is wrong."<<endl;
}
if(b5<b6)
{
cout<<c6+1;
cout<<" character ')' is wrong."<<endl;
}
if(b7<b8)
{
cout<<c8+1;
cout<<" character '>' is wrong."<<endl;
}
}
}
private:
char a[100];
int b1;
int c1;
int b2;
int c2;
int b3;
int c3;
int b4;
int c4;
int b5;
int c5;
int b6;
int c6;
int b7;
int c7;
int b8;
int c8;
};
int main()
{
lilang data;
data.Input();
data.Check();
return 0;
}
using namespace std;
class lilang{
public:
lilang(){
b1=0;c1=0;
b2=0;c2=0;
b3=0;c3=0;
b4=0;c4=0;
b5=0;c5=0;
b6=0;c6=0;
b7=0;c7=0;
b8=0;c8=0;
}
void Input(){
for(int i=0;;i++)
{
cin>>a[i];
if(a[i]=='#')
break;
}
}
void Check(){
for(int i=0;a[i]!='#';i++)
{
switch(a[i])
{
case '{':b1++;c1=i;break;
case '}':b2++;c2=i;break;
case '[':b3++;c3=i;break;
case ']':b4++;c4=i;break;
case '(':b5++;c5=i;break;
case ')':b6++;c6=i;break;
case '<':b7++;c7=i;break;
case '>':b8++;c8=i;break;
}
}
if((b1==b2)&&(b3==b4)&&(b5==b6)&&(b7==b8))
cout<<"right"<<endl;
if((b1+b3+b5+b7)>(b2+b4+b6+b8))
{
cout<<"loss of right character ";
if(b1>b2)
cout<<"}";
if(b3>b4)
cout<<"]";
if(b5>b6)
cout<<")";
if(b7>b8)
cout<<">";
cout<<"."<<endl;
}
else if((b1+b3+b5+b7)<(b2+b4+b6+b8))
{
cout<<"The ";
if(b1<b2)
{
cout<<c2+1;
cout<<" character '}' is wrong."<<endl;
}
if(b3<b4)
{
cout<<c4+1;
cout<<" character ']' is wrong."<<endl;
}
if(b5<b6)
{
cout<<c6+1;
cout<<" character ')' is wrong."<<endl;
}
if(b7<b8)
{
cout<<c8+1;
cout<<" character '>' is wrong."<<endl;
}
}
}
private:
char a[100];
int b1;
int c1;
int b2;
int c2;
int b3;
int c3;
int b4;
int c4;
int b5;
int c5;
int b6;
int c6;
int b7;
int c7;
int b8;
int c8;
};
int main()
{
lilang data;
data.Input();
data.Check();
return 0;
}
相关文章推荐
- 如何判断类是否含有某个函数
- 20160405
- Android 中的一些开发技巧(延迟启动,文件写出,透明状态栏,任意界面退出)
- Vsftp的安装部署
- 小觅机器人sDeno--吸引百万关注的促销员
- C++/C程序的基本概念(0)
- 关于 PHP 的标准输入
- opencv x.x 编译源码
- 手把手教你搭建自己的Java Web(Android)项目(SpringMVC + Mybatis服务端,Html5 Web端, Android客户端实现)
- JS判断浏览器是否支持某一个CSS3属性的方法
- andriod math的一些用法
- Dubbo架构设计详解(转自shiyanjun.cn)
- linux命令学习03-grep
- JAVA Socket:文件传输
- leetcode 链表排序
- leetcode---Ugly Number
- Mahout安装
- 大数据离线处理和常用工具
- 字符串如何转变为倒叙
- Android百度地图开发 百度地图得到当前位置