Посчитать Сумму Элементов В Подматрице, Заданной Пользователем

Тема в разделе "C/C++/C#", создана пользователем slashkinks, 4 ноя 2012.

  1. slashkinks

    slashkinks Гость

    Дана матрица 10х10. Посчитать сумму элементов в подматрице , заданной пользователем , и проверить существование данной подматрицы.
    Помогите пожалуйста написать код на С++ основной части программы(самую простую) , или напишите хотя бы как задавать подматрицу в матрице .
     
  2. Unk

    Unk Гость

    как должна создавать подматрица? из существующей достать матрицу 5 на 5? Надеюсь не глупости говорю
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Я думаю подматица задается четырьмя числами - <индекс верхней строки><индекс правого столбца><индекс нижней строки><индекс левого столбца>

    очевидно надо проверить чтобы для матрицы NxM индексы были неотрицательны, индексы столбцов были меньше M, строк - меньше N.
     
  4. Unk

    Unk Гость

    или же индекс первого элемента и кол во строк и столбцов?
     
  5. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    также можно подматрицу задать номерами элементов,
    находящихся в начале и конце главной диагонали необходимой подматрицы.
     
  6. slashkinks

    slashkinks Гость

    Это понятно , но как именно записать вот это ... в этом для меня основной вопрос(
     
  7. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Код (Text):
    std::cin>>a>>b>>c>>d;
    if (a > b) swap(a,b);
    if (c > d) swap(c,d)
    if (a < 0 || b < 0 || c < 0 || d < 0
    || a > N || c > N || b > M || d > M ) {
    /* матрица не существует */
    return;
    }
    s = 0;
    for (i = a; i < c; ++i )
    for( j = b; j < d; ++j )
    s += a[i][j];
     
  8. slashkinks

    slashkinks Гость

    r04
    Спасибо ) то что нужно !
     
Загрузка...

Поделиться этой страницей