Создать ступенчатый массив (ошибка outofmemory) - C#
Формулировка задачи:
Помогите, не могу создать ступенчатый массив, появляется ошибка OutOfMemoryException.
Мне нужно создать сначала одномерный массив, заполнить его случайными числами, а потом создать квадратную матрицу (именно в виду ступенчатого массива, а не прямоугольного)и заполнить ее следующим образом: если в одномерном массиве X[i] == X[j], то вносить 1, если не равно - то ноль. Т.е. по диагонали должны стоять в итоге единицы. Но возникает ошибка OutOfMemoryException при инициализации ступенчатого массива
Если же я не пишу цикл инициализации ступенчатого массива, то возникает ошибка NullReferenceException
int N; // кол-во элементов
int[] X; // одномерный массив
int[][] C; // ступенчатый массив
N = Convert.ToInt32(Console.ReadLine());
X = new int[N];
Random rnd = new Random(10);
for (int i=0;i<N;i++) //заполнение одномерного массива
X[i] = rnd.Next();
C = new int[X.Length][];
for (int i = 0; i < X.Length; i++) //инициализация ступенчатого массива
C[i] = new int[X[i]];
for (int i = 0; i < C.Length; i++) { //заполнение ступенчатого массива
for (int j = 0; j < C[i].Length; j++) {
if (X[i] == X[j]) {
C[i][j] = 1;
}
else {
C[i][j] = 0;
}
}
}Решение задачи: «Создать ступенчатый массив (ошибка outofmemory)»
textual
Листинг программы
int N; // кол-во элементов
int[] X; // одномерный массив
int[][] C; // ступенчатый массив
N = 10;
X = new int[N];
Random rnd = new Random(10);
for (int i = 0; i < N; i++) //заполнение одномерного массива
X[i] = rnd.Next(0, 10);
C = new int[X.Length][];
for (int i = 0; i < X.Length; i++) //инициализация ступенчатого массива
C[i] = new int[X[i]];
for (int i = 0; i < C.Length; i++)
{ //заполнение ступенчатого массива
for (int j = 0; j < C[i].Length; j++)
{
if (X[i] == X[j])
{
C[i][j] = 1;
}
else
{
C[i][j] = 0;
}
}
}