2012-02-01 5 views
0

У меня есть 2d матрица, созданная с кодом:Установите 1d Matrix Pattern равно 2D-Matrix

for(i=0; i < size; i++) 
{ 
    for(j=0; j <size; j++) 
    { 
     a1[i][j] = i+1 + j+2; 
    } 
} 

Я пытаюсь повторить этот шаблон в матрице, созданный:

double* 
a = malloc(sizeof(double)*randk*randk); 

Я не могу понять, как определить тот же шаблон.

ответ

0

Вы имеете в виду создание такого же числовой шаблон? Это просто:

for(int i = 0; i < randk; ++i) 
    for(int j = 0; j < randk; ++j) 
    a[i * randk + j] = i + j + 3; 

Или, если вы предпочитаете один цикл:

for(int i = 0; i < randk * randk; ++i) 
    a[i] = (i/randk) + (i % randk) + 3; 
1
+0

Im не пытается динамически выделить многомерный массив ... я нужен единый массив, который генерирует один и тот же номер скороговоркой. – chrstahl89

+0

Этот пункт часто задаваемых вопросов по-прежнему применяется. Если вы выделяете многомерный массив по мере их описания, вы можете продолжать использовать 'a1 [i] [j]', как и раньше. Или, если вы должны использовать 1-мерный массив, этот раздел часто задаваемых вопросов объясняет, как обращаться к элементам. Прочтите все. – jamesdlin

Смежные вопросы