VC++函数的问题
来源:百度知道 编辑:UC知道 时间:2024/06/20 14:12:40
我要设计一个程序
让电脑能够随机发牌
下面是我做的程序,运行成功,但是只能发一张牌
我想要连续发两张。但是发出来的牌还是一样的。
难道同一个函数不能连续运行两次吗???
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<string>
using namespace std;
string random_card();
string random_number();
int main()
{
cout<<random_card()<<random_number();
cout<<random_card()<<random_number();
return 0;
}
string random_card()
{srand(time(0));
int x=rand()%4;;//随机产生0,1,2,3四种花色
string card[4]={"红桃","方块","黑桃","草花"};
return(card[x]);
}
string random_number()
{srand(time(0));
int y=rand()%14;;//随机产生0-13的随机数,从而确定牌的大小
string number[13]= {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
让电脑能够随机发牌
下面是我做的程序,运行成功,但是只能发一张牌
我想要连续发两张。但是发出来的牌还是一样的。
难道同一个函数不能连续运行两次吗???
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<string>
using namespace std;
string random_card();
string random_number();
int main()
{
cout<<random_card()<<random_number();
cout<<random_card()<<random_number();
return 0;
}
string random_card()
{srand(time(0));
int x=rand()%4;;//随机产生0,1,2,3四种花色
string card[4]={"红桃","方块","黑桃","草花"};
return(card[x]);
}
string random_number()
{srand(time(0));
int y=rand()%14;;//随机产生0-13的随机数,从而确定牌的大小
string number[13]= {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
srand(time(0));
是这句话有问题,不能那样子写,而且一般在一个线程当中只要初始化一次就可以了
对于你提出的问题补充,本人对所发的程序重新做了改动,实现了你的程序要求的功能:
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<string>
using namespace std;
void random_card(void);
int main()
{
random_card();
return 0;
}
void random_card(void)
{
srand((unsigned)time(NULL));
string card[4]={"红桃","方块","黑桃","草花"};
string number[13]= {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
string str[2],s;
int array[2];
int x,y;
for(int i = 0; i < 2; i++ )
{
array[i] = rand() ;
x = array[i] % 4;//随机产生0,1,2,3四种花色
y = array[i] % 14;//随机产生0-13的随机数,从而确定牌的