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

Вывести все элементы матрицы, которые расположены ниже побочной диогонали - C++

Восстановить пароль Регистрация
 
b-boy
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 20
06.06.2012, 16:02     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #1
привет ... задачка такая,дана матрица квадратная, нужно вывести все элементы ,которые расположены ниже побочной диогонали ,то есть с нижнего левого угла, к верхнему правому ...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 16:02     Вывести все элементы матрицы, которые расположены ниже побочной диогонали
Посмотрите здесь:

C++ Переставить все элементы k-ой строки матрицы (между собой) и все элементы побочной диагонали
Найти, сколько нулевых элементов содержит матрица выше и ниже побочной диогонали C++
Как получить элементы матрицы, которые находятся ниже побочной диагонали? C++
C++ Матрицы. Рассмотрим те элементы, которые расположены в строках, начинающихся с отрицательного элемента
Заменить в данной матрице все элементы ниже побочной диагонали числом 5 C++
C++ В двумерном массиве вывести все элементы выше главной диагонали и ниже побочной
C++ Найти максимум тех чисел, которые расположены ниже главной и выше обратной диагонали матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5665 / 3144 / 356
Регистрация: 29.11.2010
Сообщений: 8,420
06.06.2012, 16:20     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #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>
#include <algorithm>
#include <iterator>
#include <random>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(1, 99);
    const std::size_t M = 5;
    int matrix[M][M];
    std::for_each(matrix, matrix + M, [&uid, &gen](int* const pvalue)
    {
        std::generate(pvalue, pvalue + M, [&uid, &gen] {return uid(gen); } );
        std::copy(pvalue, pvalue + M, std::ostream_iterator<int> (std::cout, " ") );
        std::cout<< std::endl;
    } );
    std::cout<< std::endl;
    for (std::size_t i=0; i < M; i++)
        for (std::size_t j=0; j < M; j++)
            if(i >= M - j) std::cout<< matrix[i][j]<< " ";
    return 0;
}
b-boy
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 20
06.06.2012, 16:22  [ТС]     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #3
ого, это же вроде с++ для начинающих ... спасибо, я решил проще !
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5665 / 3144 / 356
Регистрация: 29.11.2010
Сообщений: 8,420
06.06.2012, 16:24     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #4
Цитата Сообщение от b-boy Посмотреть сообщение
ого, это же вроде с++ для начинающих ... спасибо, я решил проще !
Весь алгоритм фактически вот:
C++
1
2
3
for (std::size_t i=0; i < M; i++)
        for (std::size_t j=0; j < M; j++)
            if(i >= M - j) std::cout<< matrix[i][j]<< " ";
Остальное лишь рандомное заполнение и вывод на экран. Если считаешь сложным - ставь свое.
b-boy
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 20
06.06.2012, 16:25  [ТС]     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main(){
    int n=0,c[100][100],x=0;
    cin>>n;
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++)
            cin>>c[i][j];
    }
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            if (i+j > n-1){
                if (c[i][j]%2==0){
                x++;
                }
            }
        }
    }       
    cout <<x<<endl;
    return 0;
}
вот так разве не легче ?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5665 / 3144 / 356
Регистрация: 29.11.2010
Сообщений: 8,420
06.06.2012, 16:30     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #6
Цитата Сообщение от b-boy Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main(){
    int n=0,c[100][100],x=0;
    cin>>n;
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++)
            cin>>c[i][j];
    }
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            if (i+j > n-1){
                if (c[i][j]%2==0){
                x++;
                }
            }
        }
    }       
    cout <<x<<endl;
    return 0;
}
вот так разве не легче ?
Ну, во-перых, при вводе n > 100 у вас будет выход за границы массива.
Во-вторых, каждому свое. Лично мне лень каждый раз вбивать значения при тестировании программы. А непонимание синтаксиса уйдет с приобретением опыта.

Добавлено через 1 минуту
В-третьих, у вас вобще другая задача.
b-boy
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 20
06.06.2012, 16:35  [ТС]     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #7
Цитата Сообщение от MrGluck Посмотреть сообщение
В-третьих, у вас вобще другая задача.
в каком смысле другая задача ?? все мое решение правильное, а размер не важен, это не большая задачка от преподвателя ...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 16:44     Вывести все элементы матрицы, которые расположены ниже побочной диогонали
Еще ссылки по теме:

C++ Вывести все нулевые элементы, которые есть на главной диагонали массива и ниже её
C++ Получить матрицу B, элементы которой - сумма элементов матрицы A с min элементом ниже побочной диагонали
Заменить нулями элементы матрицы, лежащие ниже побочной диагонали C++
C++ Функция вычисления суммы элементов квадратной матрицы, которые расположены ниже главной диагонали
C++ Заменить все нулевые элементы матрицы, которые стоят на побочной диагонали и выше нее, на 1

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5665 / 3144 / 356
Регистрация: 29.11.2010
Сообщений: 8,420
06.06.2012, 16:44     Вывести все элементы матрицы, которые расположены ниже побочной диогонали #8
Вы ничего не говорили про проверку на условие, является ли число четным.
Ну и то, что вы написали - быдлокод, т.к. он написан в стиле "компилируется и ладно".
Если хотите задавать размер массива сами - используйте динамический массив.
А вобще, раз вы такой умный, зачем вобще написали сюда?
размер не важен
как раз в вашей задаче он важен, т.к. возможен выход за границы массива
все мое решение правильное
увы, получается, что не так
Yandex
Объявления
06.06.2012, 16:44     Вывести все элементы матрицы, которые расположены ниже побочной диогонали
Ответ Создать тему
Опции темы

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