Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

добиться того, чтобы все нулевые элементы располагались на главной диагонали

81K
03 июля 2013 года
nervs
10 / / 03.07.2013
Сама задача: С помощью перестановки строк матрицы добиться того, чтобы все нулевые элементы располагались на главной диагонали (дополнительных векторов и матриц не использовать)
51K
03 июля 2013 года
BagiLR
110 / / 29.06.2013
исходник можно??? один или два массива с классами??? :)
81K
03 июля 2013 года
nervs
10 / / 03.07.2013
Полностью задание: Дана квадратная матрица A, в каждой строке и каждом столбце которой содержится по одному нулевому элементу.С помощью перестановки строк матрицы добиться того, чтобы все нулевые элементы располагались на главной диагонали (дополнительных векторов и матриц не использовать)
11K
04 июля 2013 года
xAtom
65 / / 17.01.2011
Держи.

Код:
using System;
 
public class Test
{
    static void Swap(ref int a, ref int b) {
        int t = a;
        a = b;
        b = t;
    }
   
    public static void Main()
    {
          const int N = 5;
          int[,] A = new int[N,N] {
             { 1, 4, 0, 5, 7 },
             { 0, 3, 5, 2, 4 },
             { 1, 9, 9, 0, 3 },
             { 0, 8, 1, 5, 1 },
             { 4, 5, 0, 1, 3 }
          };
 
          Console.WriteLine("Исходная матрица:");
          for(int r = 0; r < N; r++) {
                for(int c = 0; c < N; c++)
                    Console.Write("{0} ", A[r,c]);
                Console.WriteLine();
          }
 
          // Перестановка нулей на главную диагональ
          int d = 0;
          for(int i = 0; i < N; i++, d++) {
              for(int j = 0; j < N; j++) {
                   if(A[i,j] == 0) {
                        for(int c = j; c > d; c--)
                            Test.Swap(ref A[i,c], ref A[i,c-1]);
                        for(int c = j; c < d; c++)
                            Test.Swap(ref A[i,c], ref A[i,c+1]);
                        break;
                    }
               }
           }
 
           Console.WriteLine("\nОбработанная матрица:");
           for(int r = 0; r < N; r++) {
                for(int c = 0; c < N; c++)
                    Console.Write("{0} ", A[r,c]);
                Console.WriteLine();
           }
     }
}
Тест кода: Проверка кода
81K
04 июля 2013 года
nervs
10 / / 03.07.2013
Спасибо

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог