#include<bits/stdc++.h>
#include<windows.h>
void SetTitle(LPCSTR lpTitle)
{
SetConsoleTitle(lpTitle);
}
using namespace std;
int main()
{
long long i,g=-1000000,t,n1=0,n2=0,j,m,bk;
char ch='\0';
bool l[255];
string s,a="",b="",c="";
system("color F0");
system("mode con cols=34 lines=19");
SetTitle("人工智能 AI 1.0");
cout<<"\n 算式格式为\"~~~=?\"\n 支持+-*/%五种运算!\n 不支持混合运算!\n 退出请输入\"退出\"\n 请提问:\n\n\n";
while(1)
{
char k[255]={'\0'};
memset(l,1,sizeof(l));
cout<<" >> ";
cin>>k;
cout<<" >> ";
for(i=0;i<255;i++)
if(int(k[i])<0)l[i]=0;//注:这里用来判断中英文 例如输入"n=1,你好"则l为11110000
//1个1为英文字符,2个0为中文
s=k;
if(l[0])t=1;
else t=2;
for(i=0;i<s.size();i+=t)
{
if(l[i])t=1;
else t=2;
if(k[i]=='\0')break;
a="",b="",c="";
if(l[i])
{
if(s[i]>='0'&&s[i]<='9')
{
n1=0,n2=0;
ch='\0';
bk=0;
for(j=i;s[j]>='0'&&s[j]<='9';j++)
n1=n1*10+(s[j]-'0');
if(s[j]!='+'&&s[j]!='-'&&s[j]!='*'&&s[j]!='/'&&s[j]!='%')goto out;
ch=s[j];
m=j+1;
int z=j+1;
j--;
for(;s[m]>='0'&&s[m]<='9';m++)
n2=n2*10+(s[m]-'0');
bk=m;
m--;
cout<<'=';
if(ch=='+')cout<<n1+n2;
if(ch=='-')cout<<n1-n2;
if(ch=='*')cout<<n1*n2;
if(ch=='/')cout<<n1/n2;
if(ch=='%')cout<<n1%n2;
break;
}
out:
if(s[i]=='?'&&s[i+1]!='\0')cout<<',';
else if(s[i]=='?'||s[i]=='!')cout<<"";
else cout<<s[i];
continue;
}
a.append(1,s[i]);
a.append(1,s[i+1]);
b.append(1,s[i+2]);
b.append(1,s[i+3]);
c.append(1,s[i+4]);
c.append(1,s[i+5]);
if(a=="你"&&b!="好"&&b!="个")cout<<"我";
else if(a=="我")cout<<"你";
else if(a=="是"&&b=="谁")
{
cout<<"是一个人工智能";
i+=2;
}
else if(a=="呢"||a=="啊"||a=="呐"||a=="呀"||a=="哇"||a=="那"||a=="咯"||a=="吧"||a=="啦"||a=="了"||a=="儿"||a=="吗"||a=="")cout<<"";
else if((a=="弄"||a=="干")&&(b=="嘛"||b=="啥"))
{
cout<<"肝代码";
i+=2;
}
else if(a=="哪")cout<<"北京";
else if(a=="何"&&b=="处")
{
cout<<"北京";
i+=2;
}
else if(a=="是"&&b=="几"||a=="是"&&b=="多"&&c=="少"||a=="等"&&b=="于"&&(c=="几"||c=="多"))
{
for(int j=1;j<=i;j++)cout<<"\b";
cout<<a;
}
else if(a=="是"&&b=="什"&&c=="么")
{
for(int j=1;j<=i;j++)cout<<"\b";
cout<<"我不知道";
i+=4;
if(l[i+2]==1)i++;
}
else if(a=="是")
{
srand(g+=3);
if(rand()%5>1)cout<<"是";
else cout<<"不是";
}
else if(a=="能")
{
srand(g+=3);
if(rand()%2)cout<<"能";
else cout<<"不能";
}
else if(a=="几"||a=="多"&&b=="少")
{
srand(g+=3);
cout<<rand()%100;
if(b=="少")i+=2;
}
else if(a=="什"&&b=="么"&&c=="地")
{
cout<<"北京";
i+=6;
}
else if(a=="什"&&b=="么"&&c=="时")
{
cout<<"中午";
i+=6;
}
else if(a=="什"&&b=="么"&&c=="名")
{
cout<<"AI 1.0";
i+=6;
}
else if(a=="死"&&b=="了")
{
cout<<"没死";
i+=2;
}
else if(a=="你"&&b=="个")
{
cout<<"你才";
i+=2;
}
else if(a=="知"&&b=="道")
{
cout<<"知道,";
i+=2;
}
else if(a=="")cout<<"";
else if(a=="")cout<<"";
else if(a=="")cout<<"";
else if(a=="")cout<<"";
else if(a=="")cout<<"";
else if(a=="退"&&b=="出")return 0;
else cout<<a;
}
cout<<"!\n\n";
}
return 0;
}
其实就是改变了一些汉字,再输出.
可以简单运算
如:
输入: 1+1=?
输出: =2!
10*10是多少?
=100!
像1+1+1这样的就只输出1+1的结果
制作不易,点个赞也行啊!