#include<bits/stdc++.h>
using namespace std;
char kz;
int a[10],n,w=0,x=0,d=0,br=0;
int main(){
cout<<"欢迎来到抽奖系统,每抽一次奖,将会使用5个点,有高达99.9%的机率中奖!输入’k‘即可开始"<<endl;
cin>>kz;
while(kz=='k')
{
srand((unsigned)time(NULL));
for(int i=1;i<=10;i++)
{
a[i]=rand();
}
sort(a+1,a+10+1);
n=rand();
while(n>10)
{
n=rand();
}
if(a[n]>=a[6]) cout<<endl<<"你抽到了:武器卡"<<endl;
else if(a[n]<=a[5]&&a[n]>=a[1]) cout<<endl<<"你抽到了:效果卡"<<endl;
else cout<<endl<<"谢谢参与,下次再来"<<endl;
}
cout<<"继续or退出?继续请按k,退出请按t"<<endl;
cin>>kz;
if(kz=='t')
{
return 0;
}
return 0;
}
```###### 这个while语句无法停止了
######
###### 无法上传截图,描述一下吧:一直在死循环输出一些结果
###### 我尝试return 0;过,但不可以再次访问了
###### 每输出一次结果后可以重新询问
后面的输入与判断语句放到循环语句外面了,移动循环内部就可以了,修改如下:
#include<bits/stdc++.h>
using namespace std;
char kz;
int a[10],n,w=0,x=0,d=0,br=0;
int main(){
cout<<"欢迎来到抽奖系统,每抽一次奖,将会使用5个点,有高达99.9%的机率中奖!输入’k‘即可开始"<<endl;
cin>>kz;
while(kz=='k')
{
srand((unsigned)time(NULL));
for(int i=1;i<=10;i++)
{
a[i]=rand();
}
sort(a+1,a+10+1);
n=rand();
while(n>10)
{
n=rand();
}
if(a[n]>=a[6]) cout<<endl<<"你抽到了:武器卡"<<endl;
else if(a[n]<=a[5]&&a[n]>=a[1]) cout<<endl<<"你抽到了:效果卡"<<endl;
else cout<<endl<<"谢谢参与,下次再来"<<endl;
cout<<"继续or退出?继续请按k,退出请按t"<<endl;
cin>>kz;
if(kz=='t')
{
return 0;
}
}
return 0;
}
while循环条件是kz=='k'
只要不等于k就结束了。
后面cin>>kz代码放错位置了吧,没在循环内。
#include<bits/stdc++.h>
using namespace std;
char kz;
int a[10],n,w=0,x=0,d=0,br=0;
int main(){
cout<<"欢迎来到抽奖系统,每抽一次奖,将会使用5个点,有高达99.9%的机率中奖!输入’k‘即可开始"<<endl;
cin>>kz;
while(kz=='k')
{
srand((unsigned)time(NULL));
for(int i=1;i<=10;i++)
{
a[i]=rand();
}
sort(a+1,a+10+1);
n=rand();
while(n>10)
{
n=rand();
}
if(a[n]>=a[6]) cout<<endl<<"你抽到了:武器卡"<<endl;
else if(a[n]<=a[5]&&a[n]>=a[1]) cout<<endl<<"你抽到了:效果卡"<<endl;
else cout<<endl<<"谢谢参与,下次再来"<<endl;
cout<<"继续or退出?继续请按k,退出请按t"<<endl;
cin>>kz;
if(kz=='t')
{
return 0;
}
}
return 0;
}
你的kz始终没有改成别的值,那while(kz=='k')始终成立
你只要改下kz的值就可以了