2013-07-30 3 views
3

Я написал код для печати матрицы чисел 5x6, но я пытаюсь выяснить, как я могу делать числа внутри матрицы случайными (если возможно, в пределах интервала). Как это похоже на получение случайных чисел в строках?C - Матрица, случайные числа

int row[50] 
srand(time(NULL)); 
for(i=0;i<50;i++){ 
    row[i]=rand()%31+10; 
    printf("%d ", row[i]); 
} 

Я использовал этот код ранее сегодня для 50 случайных чисел в пределах интервала 10-40.

ответ

3

Вы можете использовать два 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; 
} 
1

В дополнение к ответу jh314, вот это удобная функция, чтобы получить случайное число в интервале.

int random_int(int min, int max) { 
    return min + rand() % (max - min + 1) 
} 
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; 
} 
Смежные вопросы