出错了,随机数问题,帮忙
/* 2个甩子游戏 */#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <dos.h>
#include <iostream.h>
int main()
{
int fa1();
int fa2();
int panduan(int[],int[]);
int i;
int wo[1],dian[1];
char p,q;
int sum=1,sum1=1;
int ci,ji=0,hh=0,ss=0;
cout<<"**欢迎来到2个帅子的游戏**!"<<endl<<endl;
while(sum)
{
for(i=0;i<2;i++)
{
while(1)
{
cout<<"现在是否要第"<<i+1<<"甩子?是按Y,否按N。输入:";
cin>>p;
if(p=='y'||p=='Y')
{
cout<<i;
dian[i]=fa1();
wo[i]=fa2();
break; //跳出本循环
}
if (p=='n'||p=='N')
{
cout<<"游戏快乐,再见!"<<endl;
getchar(); //退出暂停
return 0;
}
if(q!='y'||q!='Y'||q!='n'||q!='N')
cout<<"你输入有误!请输入Y或N!"<<endl<<endl;
}
}
ci=panduan(wo,dian);
if(ci>0) hh++;
else ss++;
ji++;
cout<<"你一共玩了:"<<ji<<"次; 赢了:"<<hh<<"次!"<<"; 输了:"<<ss<<"次!"<<endl<<endl;
while(sum1)
{
cout<<endl<<endl;
cout<<"是否再来一局?是的按Y或y,不玩了按N或n.输入:";
cin>>q;
cout<<endl;
if(q=='y'||q=='Y')
{
sum=1;
system("cls") ;
break;
}
if(q=='N'||q=='n') {sum=0;break;}
if(q!='y'||q!='Y'||q!='n'||q!='N')
cout<<"你输入有误!请输入Y或N!"<<endl;
}
}
return 0;
}
int fa2() //怕随机种子相同 ,随机1
{
int i;
srand((unsigned)time(NULL));
i=rand()%5+1;
return i;
}
int fa1() //随机2
{
int i;
srand((unsigned)clock());
i=rand()%5+1;
return i;
}
int panduan(int w[],int d[])
{
cout<<endl;
cout<<"你的第一个甩子数是:"<<w[0]<<"; 你的第二个甩子数是:"<<w[1]<<endl<<endl;
cout<<"电脑的第一个甩子数是:"<<d[0]<<"; 电脑的第二个甩子数是:"<<d[1]<<endl<<endl;
if(w[0]==w[1]&&d[0]==d[1])
{
if(w[0]>d[0])
{
cout<<"真厉害!你赢了这一局!玄!都是对子!"<<endl<<endl;
return 1;
}
else {cout<<"这局输的真惨!就差那么一点,可惜了我的对子!"<<endl<<endl;return -1;}
}
if(w[0]==w[1]&&d[0]!=d[1])
{
cout<<"真爽!你大赢了这一局!有对子就是爽!"<<endl<<endl;
return 1;
}
if(d[0]==d[1]&&w[0]!=w[1])
{
cout<<"真衰!你这一局输惨了!电脑是对子!"<<endl<<endl;
return -1;
}
else
{
if(w[0]+w[1]>d[0]+d[1])
{
cout<<"真好!你赢了这一局!就比你多了那么点!"<<endl<<endl;
return 1;
}
else
{
cout<<"哎!你输了这一局!!"<<endl<<endl;
return -1;
}
}
}
问题出在.我的第一个数 和电脑的 第二数 一样 。
还有 问题 for(i=0,i<2,i++)
后面31行的输出,cout<<"现在是否要第"<<i+1<<"甩子?是按Y,否按N。输入:";中i+1 有时既然有数字7?
在我的监视i中 没有异常。
真的很奇怪!!