我寫了一個代碼來打印5x6矩陣的數字,但我想弄清楚如何使矩陣內的數字隨機(如果可能,在區間內)。它與獲得行中的隨機數有多相似?C - 矩陣,隨機數
int row[50]
srand(time(NULL));
for(i=0;i<50;i++){
row[i]=rand()%31+10;
printf("%d ", row[i]);
}
我今天早些時候用這個代碼爲10-40間隔內的50個隨機數。
我寫了一個代碼來打印5x6矩陣的數字,但我想弄清楚如何使矩陣內的數字隨機(如果可能,在區間內)。它與獲得行中的隨機數有多相似?C - 矩陣,隨機數
int row[50]
srand(time(NULL));
for(i=0;i<50;i++){
row[i]=rand()%31+10;
printf("%d ", row[i]);
}
我今天早些時候用這個代碼爲10-40間隔內的50個隨機數。
您可以使用兩種for
循環:
int array[5][6];
srand(time(NULL));
int x, y;
for(x = 0; x < 5; x++) {
for(y = 0; y < 6; y++)
array[x][y] = rand() % 31 + 10;
}
除了jh314的答案,這裏是一個方便的功能區間獲得一個隨機數。
int random_int(int min, int max) {
return min + rand() % (max - min + 1)
}
在情況下,如果你正在尋找在矩陣中的所有獨特的數字:
int used[30];
int count=0;
int check_used(int x)
{
int i;
for(i =0; i<count;i++)
if(used[i] == x)
return 1;
return 0;
}
int main()
{
int r,i,j;
int mat[5][6];
srand (time(NULL));
for (i=0;i<5;i++)
for(j=0;j<6;j++)
while(1)
{
r=rand() % 31 + 10;
if(!check_used(r))
{ mat[i][j] = used[count++] =r;
break;
}
}
return 0;
}