Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 01.05.2021
Сообщений: 19

Главная и побочная диагонали двумерного массива

01.05.2021, 02:38. Показов 2011. Ответов 2

Студворк — интернет-сервис помощи студентам
Суть проблемы такова: нужно определить минимальное из положительных и максимальное из отрицательных значение в главной и побочной диагоналях рандомно сгенерированной матрицы 5х5.
Я знаю, что я что-то делаю не так и это что-то напрямую завязано с условиями внутри циклов, но как это поправить - не могу понять, хотя весь день и всю ночь торчу в похожих темах и пытаюсь найти хоть что-то. Видимо, нужен свежий взгляд опытных людей со стороны, в связи с чем и прошу помочь)

Пока что код выглядит следующим образом:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    setlocale (LC_ALL, "rus");
    srand(time(NULL));
    const int N = 5;
    int A[N][N], min=0, max=0;
    for (int i=0; i<5;i++)
        {for (int j=0; j<5;j++)
            {
            A[i][j] = rand() % (100 - (-100)) - 100;
            cout << "A[" << i << "][" << j << "]=" << A[i][j] << "\t";
            }
        cout<<endl;
        }
 //минимум из положительных чисел по главной диагонали:
    for(int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++ )
        {
            if(A[i][j]>=0 && i==j && A[i][j] < min) min = A[i][j];
            else min=101;
        }
    }
    if (min==101) cout<<"Все числа на главной диагонали отрицательные!"<<endl;
    else cout<<"Минимум из положительных чисел главной диагонали составляет "<<min<<endl;
    cout<<endl;
    
    //максимум из отрицательных чисел по главной диагонали:
    for(int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++ )
        {
            if(A[i][j]<0 && i==j && A[i][j]> max) max = A[i][j];
            else max=-101;
        }
    }
    if (max==-101) cout<<"Все числа на главной диагонали положительные!"<<endl;
    else cout<<"Максимум из отрицательных чисел по главной диагонали составляет "<<max<<endl;
    cout<<endl;
    
    //минимум из положительных чисел по побочной диагонали:
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            if(A[i][j]>=0 && j==(N-i-1) && A[i][j] < min ) min = A[i][j];
            else min=101;
        }
    }
    if (min==101) cout<<"Все числа на побочной диагонали отрицательные!"<<endl;
    else cout<<"Минимум из положительных чисел по побочной диагонали равен "<<min<<endl;
    cout<<endl;
 
    //максимум из отрицательных чисел по побочной диагонали:
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            if(A[i][j] < 0 && j==(N-i-1) && A[i][j] > max) max = A[i][j];
            else max =-101;
        }
    }
    if (max==-101) cout<<"Все числа на побочной диагонали положительные!"<<endl;
    else cout<<"Максимум из отрицательных чисел по побочной диагонали равен "<<max<<endl;
    cout<<endl;   
}
Добавлено через 24 минуты
Важное уточнение: функции мы ещё не проходили, поэтому решение с ними вообще никак не поможет, только переборка циклами
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.05.2021, 02:38
Ответы с готовыми решениями:

Главная и побочная диагонали С++
Пусть A - двумерный массив целых чисел размерности NxN. Ввести его и найти: Минимальный из элементов главной и побочной диагоналей. ...

Элементы матрицы 6x6, главная и побочная диагонали
Не могу решить.:wall: Пожалуйста, помогите.

Проверить отсортирована ли главная по возрастанию и побочная по убыванию диагонали
Проверить отсортирована ли главная по возростанию если да то проверить побочная по убыванию ли #include &lt;iostream&gt; ...

2
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,361
01.05.2021, 04:32
Лучший ответ Сообщение было отмечено Kazaryan как решение

Решение

Цитата Сообщение от Kazaryan Посмотреть сообщение
C++
23
24
if(A[i][j]>=0 && i==j && A[i][j] < min) min = A[i][j];
else min=101;
У вас min = 0 изначально. Вот это условие A[i][j] >= 0 && A[i][j] < min никогда не выполнится(при поиске максимального отрицательного ошибка такая же). Min можно инициализировать большим положительным числом и просто убрать else(если встретили не положительное число значит ничего не надо делать) и должно работать. А вообще я бы завел пару bool'ов для того чтобы запомнить есть ли хоть одно положительное / отрицательное число. Ну и переменные не жалел бы, завел бы minPositive, maxNegative и.т.д чтоб не путаться.
1
0 / 0 / 0
Регистрация: 01.05.2021
Сообщений: 19
01.05.2021, 11:05  [ТС]
Добавление четырёх разных переменных с присвоением им максимальных значений под каждый случай помогло, всё заработало. Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.05.2021, 11:05
Помогаю со студенческими работами здесь

Главная диагональ, побочная и наименьшее из значений элементов побочной диагонали
Дан массив действительных чисел размера nxn (n&lt;=10) а) Найти сумму элементов главной и побочной диагоналей. б) Найти наименьшее из...

Главная и побочная диагонали =)
Дана квадратная матрица А порядка М.Обнулить элементы матрицы,лежащие одновременно выше главной диагонали и выше побочной диагонали.

Являются ли симметричными в квадратной матрице главная и побочная диагонали
Написать и протестировать функцию, которая определяет, являются ли симметричными в заданной квадратной матрице главная и побочная диагонали.

Определить, является ли симметричными в квадратной матрице главная и побочная диагонали
написать процедуру и функцию,которая определяет, является ли симметричными в квадратной матрице главная и побочная диагонали.В основной...

Определить, являются ли симметричными в квадратной матрице главная и побочная диагонали
Написать процедуру и функцию,которая определяет,являются ли симметричными в квадратной матрице главная и побочная диагонали.В основной...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru