Форум программистов, компьютерный форум CyberForum.ru

В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении - C++

Восстановить пароль Регистрация
 
Razor123
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 17
16.12.2012, 17:38     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #1
В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 17:38     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении
Посмотрите здесь:

C++ В матрице имеется столбец в котором разность между максимальным элементом и среднем арифметическим больше первого элемента найти этот столбец и замети
C++ Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями
C++ Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент
C++ Сформировать одномерный массив. Удалить из него строку и столбец, на пересечении которых находится минималь
C++ В квадратной матрице поменять местами строку и столбец, на пересечении которых находится максимальный элемент
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vizapromo
 Аватар для vizapromo
18 / 11 / 1
Регистрация: 04.12.2012
Сообщений: 51
16.12.2012, 17:59     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #2
Вот тебе решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
using namespace std;
int a[101][101];
int main ()
{
    int n, m, i, j, k, l;
    cin >> n >> m >> k >> l;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= m; j++)
            cin >> a[i][j];
    for(i = 1; i <= m; i++)
        if(i != l)
            a[k][i] = 0;
    for(i = 1; i <= n; i++)
        if(i != k)
            a[i][l] = 0;
    for(i = 1; i <= n; i++) {
        for(j = 1; j <= m; j++)
            cout << a[i][j] << ' ';
        cout << endl;
    }
return 0;
}
Oleshko
 Аватар для Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
16.12.2012, 18:03     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #3
как можно писать такой код???
выделил столько памяти... а если надо матрицу 4*4 - то столько памяти напрасно...
а если надо 102*102 - все рухнет
vizapromo
 Аватар для vizapromo
18 / 11 / 1
Регистрация: 04.12.2012
Сообщений: 51
16.12.2012, 18:52     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #4
Я примерно так взял, в С++ если не ошибаюсь, всё работает четко при a[23004][23004]
Oleshko
 Аватар для Oleshko
21 / 21 / 1
Регистрация: 11.12.2012
Сообщений: 64
16.12.2012, 18:53     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #5
нужно делать динамически!
vizapromo
 Аватар для vizapromo
18 / 11 / 1
Регистрация: 04.12.2012
Сообщений: 51
16.12.2012, 18:54     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #6
ну тогда после ввода, сделайте так:
Int a[n+1][m+1] - и всё будет нормально
AntonReality
41 / 2 / 1
Регистрация: 25.04.2011
Сообщений: 17
16.12.2012, 18:54     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #7
Интересно, ты для проверки руками вводил матрицу 101х101?
vizapromo
 Аватар для vizapromo
18 / 11 / 1
Регистрация: 04.12.2012
Сообщений: 51
16.12.2012, 18:56     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #8
нет, читал где-то
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
16.12.2012, 19:27     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
using namespace std;
 
int main() {
    const int N = 3, M = 3;
 
    int arr[N][M] = {{5, 9, 8},
                    {8, 6, 3},
                    {9, 9, 9}};
 
 
    int x = 1, y = 1;
 
    for(int i = 0; i < N; ++i) {
        for(int j = 0; j < M; ++j) {
            if(i == x && j != y || j == y && i != x) {
                arr[i][j] = 0;
            }
        }
    }
 
    for(int i = 0; i < N; ++i) {
        for(int j = 0; j < M; ++j) {
            cout << arr[i][j] << " ";
        }
 
        cout << endl;
    }
}
Только у меня не L и K, а x и y
x3mHomer
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 137
16.12.2012, 19:34     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #10
создаешь двумерный массив, а потом в цикле
C++
1
2
3
4
5
for(int i=0; i<(количество строк); i++){
            for(int j=0; j<(количество столбцов; j++){
                 if((i==K || j==L) && i!=j) a[i][j]=0;
            }
       }
где K и L - это номера строк и столбцов соответственно

Добавлено через 6 минут
Цитата Сообщение от x3mHomer Посмотреть сообщение
создаешь двумерный массив, а потом в цикле
C++
1
2
3
4
5
for(int i=0; i<(количество строк); i++){
             for(int j=0; j<(количество столбцов; j++){
                  if((i==K || j==L) && i!=j) a[i][j]=0;
             }
        }
где K и L - это номера строк и столбцов соответственно
будет работать только если матрица квадратная (количество строк и столбцов одинаковое)
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
16.12.2012, 19:36     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #11
Цитата Сообщение от x3mHomer Посмотреть сообщение
будет работать только если матрица квадратная (количество строк и столбцов одинаковое)
У меня работает при любом условии
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 19:42     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении
Еще ссылки по теме:

В заданной матрице заменить 2ую строку и 2й столбец массива C++
Найти минимальный элемент матрицы и удалить строку и столбец на пересечении этого элемента C++
C++ Сформировать матрицу.Заменить нулями элементы,стоящие на пересечении строк и столбцов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
x3mHomer
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 137
16.12.2012, 19:42     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении #12
я просто не проверял, мне из кода так показалось =)
Yandex
Объявления
16.12.2012, 19:42     В заданной матрице заменить К-ю строку и L-й столбец нулями, кроме элемента, расположенного на их пересечении
Ответ Создать тему
Опции темы

Текущее время: 21:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru