只截取了程序的一部分,我想问为什么i和j两个随机数每次产生的都一样?怎么能让他们每次产生的都不一样?

for(;s!=25;)
{
time_t t;
srand((unsigned)time(&t));
i=(int)(rand()%5);
j=(int)(rand()%5);
printf("%d,%d,%d\n",i,j,a[i][j]);
a[i][j]=-a[i][j];
a[i-1][j]=-a[i-1][j];
a[i+1][j]=-a[i+1][j];
a[i][j-1]=-a[i][j-1];
a[i][j+1]=-a[i][j+1];
for (i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("a[%d][%d]=%d\t",i,j,a[i][j]);
}
printf("\n");
}
for (i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
s=s+a[i][j];

}
printf("\n");
}
}

那是你的rand()方法返回的值是一样的,你如果是想要你的i!=j的话,你可以直接在你的i=(int)(rand()%5);
改成i=(int)((rand()*4)%5);
温馨提示:答案为网友推荐,仅供参考
相似回答