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",

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的随机数,从而确定牌的