📄 wenfashibie.cpp
字号:
#include <iostream>
#include <cstdio>
using namespace std;
void main( )
{ int count (char *str);
char left[10][10],right[10][10] ;
int l,r,j,t,i=9;
cout<<"输入产生式个数"<<endl;
cin>>j;
for(t=0;t<j;t++)
{
cout<<"请输入产生式"<<t+1<<"的左端"<<endl;
cin>>left[t];
l=count(left[t]);
cout<<"请输入产生式"<<t+1<<"的右端"<<endl;
cin>>right[t];
r=count(right[t]);
if(l==1&&r==2&&left[t][0]>='A'&&left[t][0]<='Z'&&right[t][0]>='a'&&right[t][0]<='z'&&right[t][1]>='A'&&right[t][1]<='Z')
{ if(i>=3) i=3; }
else if (l==1&&r==1&&left[t][0]>='A'&&left[t][0]<='Z'&&right[t][0]>='a'&&right[t][0]<='z')
{ if(i>=3)i=3; }
else if(l==1&&r>=1&&left[t][0]>='A'&&left[t][0]<='Z')
{ if(i>=2)i=2;}
else if(l<=r)
{ if(i>=1) i=1;}
else
cout<<"输入的产生式不属于辨别范围"<<endl;
}
if(i!=9)
cout<<"此文法是"<<i<<"型文法!"<<endl;
else cout<<"此文法不属于辨别范围!"<<endl;
}
int count (char *str)
{ int i,num=0;
for (i=0;str[i];i++)
{if ((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
num++;
}
return num;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -