本来想用下面的程序来对数组中的元素进行设置。可是实际情况是如果产生的六个随机数,每两个都是相同的,如果去掉srand,那么每次运行产生都会产生六个不同的随机数,可是每次运行随机数的产生都是相同的,请高手指点。下面是源程序。
#include<iostream>
using namespace std;
#include<conio.h>
#include<stdlib.h>
#include<time.h>
void suijishu(int mapname[][10])
{
int number1,number2,number_rand=4;//生成number_rand-1个炸弹。
while(number_rand--)//
{
srand((int)time(0));//生成随机数生成器种子
number1=rand()%10;//生成0-9的随机数
number2=rand()%10;
if(mapname[number1][number2]==3)
{
continue;//保证随机生成的炸弹位置不在出口。
}
if(mapname[number1][number2]==2)
{
continue;//保证随机生成的炸弹位置不在入口。
}
mapname[number1][number2]=5;
cout<<number1<<endl;
cout<<number2<<endl;
}
}
void main()
{
int map1[10][10]={
1,1,0,0,1,0,0,0,1,2,//0表示道路,1表示墙,
0,0,1,0,0,1,1,0,1,0,
1,0,1,0,0,0,1,0,0,0,
1,0,1,0,1,0,1,0,0,1,
1,0,1,0,1,0,0,0,0,0,
1,0,1,0,0,0,1,1,1,0,
1,0,0,1,0,0,1,0,0,0,
0,0,0,0,0,0,0,1,1,1,
0,1,0,1,1,0,0,0,0,0,
3,1,0,0,0,1,1,1,1,0//2表示入口,3表示出口
};
suijishu(map1);
/* for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
cout<<map1[i][j]<<" ";
}
cout<<endl;
}
*/
}