
Другие языки программирования и технологии
программирование c# массивы
Не знаю как сформировать два массива, чтобы в один записывались элементы на главной диагонали и выше, а в другой лежащие ниже главной диагонали. Заранее спасибо


//это не целая прога, а только ее часть, про бинарный поиск сами сделаете и вывод
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];
}
}
//
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];
}
}
//
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)
Т. е. агоритм простой:
Вложенными циклами перебираешь массив.
Внешний по столбцам (от I = 0 до конца), а внутренний от J = I+1 до конца (это будет выше диагонали)
Или внешний по столбцам (от I = концу до 0), а внутренний от J = I-1 до 0 (это будет ниже диагонали)
Можно совместить сразу внутренние циклы (от J = I+1 до конца и J = от 0 до I-1)
Учебник открой. Погуглить попробуй.
Слушай лапушку.
Все решает формула по которой будет запись, когда то решал такую задачу, но уже забыл, погугли в интернете готовое решение
Главная диагональ это когда i==j, всё что выше это i < j, что ниже это i > j, где i-номер строки, j-номер столбца. Осталось это оформить в виде условий и запихать в двойной цикл
Товарищ что это такое, кто то ещё C изучает это ещё модно?
Андрей Косатухин
C# и C - разные вещи
Похожие вопросы
- Информатика. Программирование. Обработка массивов данных. Помогите составить алгоритм и прог. код к нему.
- Язык программирования c++, в массиве, найти положительные числа
- C++ массивы. Пожалуйста, помогите!
- Стоит ли изучать язык программирования C++ ?И какое преимущество этого языка? Где он мне пригодится ?
- Основные различия языка программирования C# от С++.
- ПОМОГИТЕ СДЕЛАТЬ ПРОГРАММИРОВАНИЕ ЛВУМЕРНЫЙ МАССИВ
- Язык программирования C.
- Язык программирования C#
- C++ массив array в классе
- Вопрос по языку программирования C# (СиШарп) (очень простой вопрос)