C++编程问题,我是初学者,程序编译没有报错,但是输入之后没反应,希望可以有人写出代码的问题在哪还有改正方法,代码如下:
#include <iostream>
using namespace std;
int main()
{
int a=1,c=0,b,d,e,x,y;
cout<<"玩家先输入1或者2,然后电脑和玩家轮流在原来的数字上加1或者2并输入计算后的结果,先累加到30的一方获胜。"<<endl<<"请输入 ";
cin>>d;
while(d<=30)
{
a++;
b=a;
b++;
c+=b;
c++;
if(d<c)
{
if((d/3)-((int)(d/3))!=0)
{
y=d+x;
for(x=0;e==0;x++)
{
e=(((d+x)/3)-((int)((d+x)/3)));
d+=x;
}
if(d!=30)
{
cout<<d<<endl<<"请继续输入 ";
cin>>d;
}
else
{
cout<<d<<endl<<"电脑胜利!"<<endl;
d=31;
}
else
{
cout<<"Error:输入的数过大或为0"<<endl;
d=31;
}
else
{
cout<<"Error:输入的数过大"<<endl;
d=31;
}
}
}
}
return 0;
}
每个else都和离它最近的if配对啊
追答你对这句话理解错了. 同一层 (就是同一个大括号内) 的 else 必须出现在一个 if 之后, 并且没有间隔其他 else. 也就是 if 可以没有 else 配对, 但 else 必须与 if 配对.
追问那这个应该怎么改呢⋯⋯可以加分的
追答29 -> 1
28 -> 2
27 -> 随便 (对方不傻你必输);
26 -> 1;
25 -> 2;
24 -> 随便 (对方不傻你必输);
......
规则分析完后, 计算机按这个规则选择 1 还是 2 即可. 下面是我的实现, 为了便于你理解我没有分多个函数, 也没有对玩家输入作验证. 代码未经测试.
#include <iostream>嗯嗯,谢谢!