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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
b-boy
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 20
#1

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

06.06.2012, 16:02. Просмотров 408. Ответов 7
Метки нет (Все метки)

привет ... задачка такая,дана матрица квадратная, нужно вывести все элементы ,которые расположены ниже побочной диогонали ,то есть с нижнего левого угла, к верхнему правому ...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 16:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести все элементы матрицы, которые расположены ниже побочной диогонали (C++):

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

В двумерном массиве вывести все элементы выше главной диагонали и ниже побочной - C++
Вообщем то задали такую задачку: В двумерном массиве вывести все элементы выше главной диагонали и ниже побочной. Но у меня получается...

Найти, сколько нулевых элементов содержит матрица выше и ниже побочной диогонали - C++
Дана вещественная матрица размерности n * m. Найти сколько нулевых элементов содержит матрица выше и ниже побочной диогонали. желательно...

Вывести все нулевые элементы, которые есть на главной диагонали массива и ниже её - C++
Задание: вывести все нулевые элементы которые есть на главной диагонали и ниже её, а программа выводит все нулевые элементы. //...

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

Заменить все нулевые элементы матрицы, которые стоят на побочной диагонали и выше нее, на 1 - C++
Дана квадратная матрица NxN. Заменить все 0 элементы на 1, которые стоят на побочной диагонали и выше нее.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
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;
}
0
b-boy
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 20
06.06.2012, 16:22  [ТС] #3
ого, это же вроде с++ для начинающих ... спасибо, я решил проще !
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
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]<< " ";
Остальное лишь рандомное заполнение и вывод на экран. Если считаешь сложным - ставь свое.
0
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;
}
вот так разве не легче ?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
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 минуту
В-третьих, у вас вобще другая задача.
0
b-boy
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 20
06.06.2012, 16:35  [ТС] #7
Цитата Сообщение от MrGluck Посмотреть сообщение
В-третьих, у вас вобще другая задача.
в каком смысле другая задача ?? все мое решение правильное, а размер не важен, это не большая задачка от преподвателя ...
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
06.06.2012, 16:44 #8
Вы ничего не говорили про проверку на условие, является ли число четным.
Ну и то, что вы написали - быдлокод, т.к. он написан в стиле "компилируется и ладно".
Если хотите задавать размер массива сами - используйте динамический массив.
А вобще, раз вы такой умный, зачем вобще написали сюда?
размер не важен
как раз в вашей задаче он важен, т.к. возможен выход за границы массива
все мое решение правильное
увы, получается, что не так
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 16:44
Привет! Вот еще темы с ответами:

Найти максимум тех чисел, которые расположены ниже главной и выше обратной диагонали матрицы - C++
Напишите пожалуйста программу , а то вообще не вникаю как делать. По условию задачи : Дана квадратная матрица целых чисел размером N&lt;=12....

В массив А записать элементы матрицы, лежащие на главной диагонали и ниже неё, в массив B - на побочной и ниже - C++
Сформировать случайным образом целочисленную матрицу N*N. Сформировать два одномерных массива А и В: в массив А записать элементы матрицы,...

Заменить нулями элементы матрицы, лежащие ниже побочной диагонали - C++
Помогите, пожалуйста написать код. Дана квадратная матрица порядка M. Заменить нулями элементы матрицы, лежащие ниже побочной диагонали.

Заменить в данной матрице все элементы ниже побочной диагонали числом 5 - C++
Дана целочисленная матрица размера NxM. Заменить в данной матрице все элементы ниже побочной диагонали числом 5. Помогите...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.06.2012, 16:44
Ответ Создать тему
Опции темы

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