Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 2
1

Подсчитать количество элементов матрицы больших элементов главной диагонали

20.11.2018, 15:44. Просмотров 1994. Ответов 4
Метки нет (Все метки)

Доброго времени суток!
я начинающий в с++))
Хочу получить совет как сделать программу которая звучит следующим образом:
нужно подсчитать количество элементов двумерного массива, которые больше чем элементы головной диагонали этого ж
массива.
я уже пробовал реализовать это задание, но программа не считала, а постоянно выводила 0.
прикрепляю код ниже:

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
47
#include "pch.h"
#include "windows.h"
#include <iostream>
#include <locale>
#include <ctime>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(NULL));
    const int ROWS = 3, COLLS = 3;
    int ar[ROWS][COLLS];
    cout << "массив N x M:" << endl;
    
    for (int i = 0; i < ROWS; i++)
    {
        for (int j = 0; j < COLLS; j++)
        {
            ar[i][j] = rand() % +100;
            cout << ar[i][j] << "\t";
        }
        cout << endl << endl;
    }
 
    int sum = 0;
    for (int i = 0; i < ROWS; i++)
    {
        for (int j = 0; j < COLLS; j++)
        {
 
            if (ar[i][j], !ar[1][1], !ar[2][2] > ar[0][0])
            {
                sum++;
            }
            if (ar[i][j] ,!ar[0][0]  ,!ar[2][2]> ar[1][1])
            {
                sum++;
            }
            if (ar[i][j], !ar[0][0], !ar[1][1]  > ar[2][2])
            {
                sum++;
            }
        }
    }
    cout << "количество элементов двумерного массива, которые больше чем элементы головной диагонали: " << sum << endl;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2018, 15:44
Ответы с готовыми решениями:

Подсчитать количество положительных элементов на главной диагонали матрицы
В квадратной матрице А ( н х н ) элементы матрицы целые, задаются датчиком случайных чисел из...

Подсчитать количество элементов матрицы, лежащих выше главной диагонали
В двумерном массиве подсчитать количество элементов лежащих выше главной диагонали.

Подсчитать количество нечетных элементов, расположенных ниже главной диагонали матрицы
Дана квадратная матрица А(N,N). Составить программу подсчета количества нечетных элементов,...

Найти количество элементов, больших 5, среди элементов главной диагонали, вычислить среднее арифметическое
№1.Дана матрица b.Найти кол-во элементов больше 5 среди элементов главной диагонали. №2.Вычислить...

4
1478 / 740 / 305
Регистрация: 11.10.2018
Сообщений: 3,862
20.11.2018, 15:54 2
А в главной диагонали что нужно посчитать? Количество элементов или их сумму по значениям?

Добавлено через 1 минуту
Тэги кода, кстати где? Поставьте их. Уже объявление пора вешать.

Добавлено через 1 минуту
Цитата Сообщение от gunslinger_19 Посмотреть сообщение
C++
1
if (ar[i][j], !ar[1][1], !ar[2][2] > ar[0][0])
- что это такое? Тут запятые неприемлемы.

Добавлено через 2 минуты
Что нужно посчитать? Сумму элементов главной диагонали и потом подсчитать сколько элементов больше этой суммы?

Добавлено через 1 минуту
Цитата Сообщение от gunslinger_19 Посмотреть сообщение
C++
1
cout << "количество элементов двумерного массива, которые больше чем элементы головной диагонали: " << sum << endl;
- не головной, а главной диагонали матрицы.
0
Модератор
Эксперт С++
10251 / 8572 / 5195
Регистрация: 18.12.2011
Сообщений: 22,935
20.11.2018, 15:54 3
Цитата Сообщение от gunslinger_19 Посмотреть сообщение
if (ar[i][j], !ar[1][1], !ar[2][2] > ar[0][0])
Запятая - это не логическая операция
Логически правильно было бы написать

C++
1
if (ar[i][j]>ar[0][0] && ar[i][j]>ar[1][1] && ar[i][j]> ar[2][2])
Однако, а) это некрасиво, б) не решает задачу для других размеров матрицы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
     int MaxDiagonal=ar[0][0];
     for (int i = 1; i < ROWS && i<COLLS; i++)
        if(MaxDiagonal<ar[i][i])
           MaxDiagonal=ar[i][i];
    int sum = 0;
    for (int i = 0; i < ROWS; i++)
    {
        for (int j = 0; j < COLLS; j++)
        {
            if(i!=j && ar[i][j]>MaxDiagonal)
               sum++;
        }
   }
0
1478 / 740 / 305
Регистрация: 11.10.2018
Сообщений: 3,862
20.11.2018, 16:00 4
Я думал ему надо найти сумму элементов главной диагонали.
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 2
20.11.2018, 16:22  [ТС] 5
Спасибо за проявленную активность, но вы не поняли суть задачи:
нужно что бы программа считала сколько элементов массива больше чем элементы главной диагонали.
То есть если элемент массива меньше чем либо-какой элемент его главной диагонали, то программа должна посчитать количество таких элементов))
Буду рад вашим комментариям))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2018, 16:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подсчитать количество локальных минимумов матрицы, найти сумму модулей элементов выше главной диагонали
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него...

Подсчитать сумму элементов матрицы, лежащих на главной диагонали
Матрица с размерностью n на m заполняется случайными числами в диапазоне от -10 до 10. Подсчитать...

Подсчитать сумму элементов матрицы лежащей на главной и побочной диагонали
Матрица имеет размер 10 на 10. Подсчитать сумму элементов лежащей на главной и побочной диагонали....

Подсчитать произведение всех элементов, находящихся ниже главной диагонали матрицы
я делала так. но ничего не получаеться private void button1_Click(object sender, EventArgs e) {...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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