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

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

Войти
Регистрация
Восстановить пароль
 
Chaow
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 15
#1

Проверить является ли матрица треугольной - C++

31.08.2013, 13:43. Просмотров 688. Ответов 3
Метки нет (Все метки)

Всем добрый день. У меня есть матрица, по которой составлен вектор. А как проверить, является ли матрица треугольной? Вот мой код:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <conio.h>
#include <iostream>
#include <vector>
#include <ctime> 
 
using namespace std;
 
int main()
{
    srand(time(NULL)); // Инициализируем генератор случайных чисел. 
    int n = 0; 
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10; // Каждый элемент случайному числу от 0 до 9
            cout << a[i][j] << " "; // Вывести элементы на консоль
        }
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
     }
     vector<int> v;//лучше писать без размера. Если он будет пустой то он будет забит нулями по умолчанию.
     for (int i = 0; i < n; i++)
    {
        int sum(0);
        for (int j = 0; j < n; j++)
             sum += a[i][j];// сумма элементов в каждой строке
             v.push_back(sum);// заносим значение в контейнер      
     }
      cout<<"\n";
      for ( int i = 0;  i < v.size() ; i++ )
            cout<<v[i]<<" ";
      cout<<"\n";
    // Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[]a[i]; // Удаляем каждый элемент
    }
    getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2013, 13:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить является ли матрица треугольной (C++):

Проверить, является ли матрица магическим квадратом - C++
Магический квадрат является расположение чисел в квадратной сетке, где числа в каждой строке и в каждом столбце, а числа в прямом и...

Проверить, является ли матрица магическим квадратом - C++
Здравствуйте! Решил задачку с сайта http://informatics.mccme.ru, но в двух тестах - неправильный ответ. Кто-нибудь, пожалуйста, подскажите...

Проверить, является ли матрица A(n,n) диагональной, единичной или нулевой - C++
Проверить, является ли матрица A(n,n) диагональной (все элементы нули, кроме главной диагонали), единичной (все элементы нули, на главной...

Проверить, является ли матрица, записанная в файле, магическим квадратом - C++
Здравствуйте,помогите пожалуйста создать код на c++ который проверяет является ли матрица магическим квадратом или нет,но матрица должна...

Проверить, является ли матрица симметричной относительно своей главной диагонали - C++
Дан двумерный массив размера N×N, заполненный целыми числами. Требуется определить, является ли он симметричным относительно своей главной...

Проверить, является ли заданная матрица симметричной относительно главной диагонали - C++
Помогите , пожалуйста, написать программу на С++. Дана квадратная вещественная матрица размерности n. Является ли матрица симметричной...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
31.08.2013, 14:23 #2
Проверить на наличие нулей ниже и выше главной диагонали. Там же проверить ниже побочной и соответственно выше оной диагонали.

К примеру:
3 2 1
0 2 1
0 0 1

Думаю дальше мысль сами развить сможете
0
Chaow
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 15
31.08.2013, 14:39  [ТС] #3
Математически это понятно. Меня интересует как это проверить и в какую часть кода нужно это писать
0
Rias
Сообщений: n/a
31.08.2013, 21:26 #4
Проверка относительно главной диагонали:
C++
1
2
3
4
5
6
7
8
9
10
11
int k=0,s=0,o=0;
for (int i = 1; i < n; i++)
     for(int j = 0; j < i; j++)
     {
          if(a[i][j]==0) s++; //проверяет элементы ниже гл. диагонали
          if(a[n-i-1][n-j-1]==0) o++; //проверяет элементы выше гл. диагонали
          k++; //кол-во элементов выше или ниже гл. диагонали (оно одинаковое т.к. матрица квадратная)
      }
     
if ((s==k)||(o==k)) cout<<"Треугольная";
        else cout<<"Не треугольная";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2013, 21:26
Привет! Вот еще темы с ответами:

Проверить является ли квадратная матрица " магическим квадратом" - C++
Дан двумерный массив размером n х n , заполненный целыми числами. Выяснить, является ли массив магическим квадратом. В магическом квадрате...

Проверить, является ли введенная с клавиатуры квадратная матрица "магическим" квадратом - C++
Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица &quot;магическим&quot; квадратом. &quot;Магическим&quot; квадратом...

Проверить, является ли введенная с клавиатуры квадратная матрица "Магическим квадратом" - C++
Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица &quot;магическим&quot; квадратом. ...

Проверить, является ли целое число трёхзначным, является ли оно квадратом - C++
помогите пожалуйста новичку 1) Введите целое число и проверьте, является ли оно трехзначным. 2) Введите целое число и проверьте,...


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

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

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