Другие языки программирования и технологии

программирование c# массивы

Не знаю как сформировать два массива, чтобы в один записывались элементы на главной диагонали и выше, а в другой лежащие ниже главной диагонали. Заранее спасибо
VG
Vitalik German
330
//это не целая прога, а только ее часть, про бинарный поиск сами сделаете и вывод
int n= Convert.ToInt32(Console.ReadLine());

int[,] arr= new int[n, n];
//тут массив 2-ми забивается, у себя сделаете как вам надо
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
arr[i,j] = 2;
}
}
//
int size1=0;//размер 1-й матрицы
//нахождение размера матрицы, где вся диагональ + элементы над ней
for (int i=0;i<n; i++)
{
size1 += n - i;
}
//
int size2 = n * n - size1;// размер 2-й матрицы
int[] arr1 = new int[size1];
int[] arr2 = new int[size2];
//тут собственно заполнение элементами 1- матрицы
for (int i=0; i<n;i++)
{
for(int j=i; j<n;j++)
{
arr1[i*(n-i)+j]= arr[i, j];
}
}
//
//тут заполнение 2-й матрицы
for (int i = 0; i < n; i++)
{
for (int j = 0; j < i; j++)
{
arr2[i-1+j] = arr[i, j];
}
}
//
РK
Русик Komalov
919
Лучший ответ
Vitalik German Спасибо
Главная диагональ матрицы это набор таких элементов массива A[i,j], где i=j
Т. е. агоритм простой:
Вложенными циклами перебираешь массив.
Внешний по столбцам (от I = 0 до конца), а внутренний от J = I+1 до конца (это будет выше диагонали)
Или внешний по столбцам (от I = концу до 0), а внутренний от J = I-1 до 0 (это будет ниже диагонали)
Можно совместить сразу внутренние циклы (от J = I+1 до конца и J = от 0 до I-1)
Учебник открой. Погуглить попробуй.
Cristi Rusu
Cristi Rusu
52 186
Слушай лапушку.
Нео 122
Нео 122
37 552
Все решает формула по которой будет запись, когда то решал такую задачу, но уже забыл, погугли в интернете готовое решение
Главная диагональ это когда i==j, всё что выше это i < j, что ниже это i > j, где i-номер строки, j-номер столбца. Осталось это оформить в виде условий и запихать в двойной цикл
Товарищ что это такое, кто то ещё C изучает это ещё модно?
Андрей Косатухин C# и C - разные вещи