Инициализация массива - страница 4

 
SDC:

поэтому он должен заполнить его в такой последовательности

[0,0]

[0,1]

[0,2]

[0,3]

затем

[1,0]

[1,1]

[1,2]

[1,3]

тогда

[2,0]

[2,1]

[2,2]

[2,3]


Понятно, но поскольку инициализация однодимензиональная, как могут быть действительны третий и второй наборы?
 

Подождите

в

int Mas_i[3][4] = { 0, 1, 2, 3,   10, 11, 12, 13,   20, 21, 22, 23 };

обозначает ли 3 количество множеств, а 4 - количество отдельных чисел внутри множества?

{(w,x,y,z) (a,b,c,d) (i,j,k,l)}

 

Да, именно так он и измеряется, когда вы заполняете массив с помощью инициализации, 3 набора по 4.

Хммм, я знаю, что уже поздно и я устал, но все же...

Если бы вы использовали цикл для заполнения массива.

int myarray[3,4]={0};

for(int i=0; i<4; i++)
{
myarray[i,0] = i;
}

это был бы первый набор из 4, верно? Но так делать нельзя, я бы заполнил массив в цикле наоборот, чтобы создать 4 набора по 3... как массив [10,2] для десяти билетов... ладно, мне пора спать, не могу больше об этом думать, lol

Edit: последовательность инициализации заполняет массив [0,i] [1,i] [2,i] Я должен был подумать об этом в течение минуты lol... так что действительно у меня есть плохая привычка делать [10,2] Я должен делать [2,10] массивы для десяти билетов, так что это соответствует тому, как инициализация будет делать это.

 
Наконец-то я понял.
 

Я думаю, что все же есть что-то в инициализации массива... последовательность инициализации не такая, как я думал... Массив [10,2] - это правильный способ обработки двух наборов из десяти соответствующих значений, например, десяти билетов на заказ с соответствующими типами для каждого билета.

Мы могли бы ввести их в цикл следующим образом:

for(i=0; i<10; i++)
{
 MyArray[i,0] = ticket[i];  
 MyArray[i,1] = type[i];
}

Итак, все десять билетов заносим в первое измерение, типы - во второе

затем запустить второй цикл [i,1] для ввода типов.

Но если бы мы вводили их по одному за раз в последовательности инициализации, нам пришлось бы сделать ticket type ticket type ...

MyArray[10,2] = {ticket1, type1, ticket2, type2, ticket3, type3 и т.д. ...

Это потому, что последовательность инициализации такова:

MyArray[0,0]

MyArray[0,1]

MyArray[1,0]

MyArray[1,1]

MyArray[2,0]

МойМассив[2,1]

и т.д. ...

Думаю, я слишком устал прошлой ночью, чтобы думать об этом lol ...

В качестве альтернативы...

Вы можете использовать массив [2,10].

Это означает, что билеты вводятся в цикле for наоборот.

for(i=0; i<10; i++)
{
MyArray[0,i} = ticket[i];
MyArray[1,i] = type[i];
}
На этот раз инициализация будет иметь вид ticket ticket ticket ticket ticket ticket ticket ticket ticket etc........ type type type type type ....etc

последовательность будет такой

MyArray[0,0]

MyArray[0,1]

MyArray[0,2]

MyArray[0,3] и т.д. через [0,9]

затем

MyArray[1,0]

MyArray[1,1]

MyArray[1,2] и т.д. ....

Причина обращения: