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

Найти число отрицательных элементов в области выше главной и ниже побочной диагонали - C++

Восстановить пароль Регистрация
 
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
23.04.2014, 16:58     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #1
В квадратной матрице а (7,7) найти число отрицательных элементов в области выше главной и ниже побочной диагонали. Поменять местами минимальный элемент 1 строки и последний элемент матрицы.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 16:58     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали
Посмотрите здесь:

C++ Найти среднее значение отрицательных элементов ниже главной диагонали
C++ Программа, которая зануляет элементы выше и ниже главной и побочной диагонали
C++ как обнулить в квадратной матрице элементы, лежащие выше главной и ниже побочной диагонали. условный оператор не использовать!
Найти минимальный из элементов ниже главной и выше побочной диагонали и поменять его местами с первым элементом матрицы C++
Верно ли, что среднее арифметическое элементов выше главной диагонали больше среднего арифметического элементов ниже главной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
23.04.2014, 17:07     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double a[7][7];
// тут присваиваем значения массиву a
//...
// считаем число отрицательных, кроме тех, что на диагонали
int count=0;
for(int i=0;i<7;i++)
for(int j=0;j<7;j++)
   if(i!=j && i!=6-j && a[i][j]<0)
            count++;
cout<<count<<endl;
// миним элемент 1-ой строки
int jmin=0;
for(int j=1;j<7;j++)
   if(a[0][j]<a[0][jmin])
         jmin=j;
// меняем местами с последним
double t=a[6][6];
a[6][6]=a[0][jmin];
a[0][jmin]=t;
// осталось вывести
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
23.04.2014, 17:26     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #3
Если одновременно выше главной и ниже побочной, то условие в строке 8 должно выглядеть как
C++
1
if(i<j && i+j>6 && a[i][j]<0)
(если выше одной или ниже другой, то между первыми двумя условиями должно стоять ИЛИ)
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
23.04.2014, 20:46  [ТС]     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #4
Товарищи програмисты я немогу понять ято значит диагональ главная и побочная.
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
23.04.2014, 20:51     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #5
Главная диагональ идет из левого верхнего угла (по индексам 0,0 1,1 и т. д.),
побочная - из правого верхнего (0,7 1,6 и т. д.)

У всех эл-тов выше главной диагонали первый индекс меньше второго, а у эл-тов ниже побочной сумма индексов больше размерности массива.
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
23.04.2014, 22:04  [ТС]     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #6
Так у вас получается что- диагонали в счет не входят как я понимаю. Но правильно ли это ведь выше главно получается что и побочная ровно половина входит а именно кардинаты,
И у нас по горизонту а джей по вертикале тогда
0,6; 1,5; 2,4;
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
23.04.2014, 22:23     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #7
Опять же, если имеется в виду область ОДНОВРЕМЕННО выше главной и ниже побочной, тогда туда войдут только элементы с индексами 4,3 5,2 6,1 5,3 6,2 6,4 6,3 6,4 6,5 (без элементов диагоналей) - сектор 2,
а если выше главной ИЛИ ниже побочной, то подойдут секторы 1, 2 и 3,
при этом две половинки диагоналей (между 1 и 2, 2 и 3 секторами) также подлежат проверке.
Изображения
 
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
23.04.2014, 22:39  [ТС]     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #8
Совсем запутался -я так понимаю что на рисунке левый верхний угол это 0,0 ?
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
23.04.2014, 22:41     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #9
Да, все верно. Что конкретно не понятно?
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
25.04.2014, 22:55  [ТС]     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #10
Вы приводите поправку по условию-у вас ай по вертикале джей по горизонту так чтоли получается?
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
25.04.2014, 23:00     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #11
Да, но оно всегда так - a[i][j] - i-я строка, j-й столбец.
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
25.04.2014, 23:00  [ТС]     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #12
У вас случайно нет ошибки поскольку надо-найти число отр. Эл. В ОБЛАСТИ ВЫШЕ ГЛАВНО И НИЖЕ ПОБОЧНОЙа у вас по условию исключаются только диагонали а если любое отрицательное число находится в других ячейках массива то его также посчитает.
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
25.04.2014, 23:21     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Да нет же, не исключаются только диагонали.
У всех элементов выше главной диагонали номер столбца больше номера строки, а у всех ниже побочной сумма номеров строки и столбца больше n-1, где n - размерность матрицы.

Добавлено через 19 минут
n971030, вот Вам массив, можете проверить
Сначала выводится сам массив, потом подошедшие нам отрицательные элементы.
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
#include <iostream>
#include <iomanip>
 
using namespace std;
const int n = 7;
 
int main() {
    int a[n][n] = {{0, 3, -6, 12, 654, -45, 0},
                   {-43, 34, 7, -6, -7, -23,34},
                   {3, 0, 45, -7, 9, 8, 56},
                   {5, 7, -98, 34, 8, -900, 7},
                   {5, 89, 9, -7, -543, 88, -54},
                   {-4, 31, 17, 27, -45, 7, 0},
                   {4, -4,-5,-23, -2, 0, -234}};
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
            cout << setw(5) << a[i][j];
        cout << endl;
    }
 
    cout << endl;
 
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            if(i < j && (i + j > (n - 1)) && a[i][j] < 0)
                cout << a[i][j] << endl;
            
    system("pause");
 
    return 0;
}
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
26.04.2014, 12:54  [ТС]     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #14
Отнюдь задание мне мало понятное, вот накарябал на паскаль на си визул студио сдох.

Pascal
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
Programm lab4;
Var
A:array[0..6,0..6] of integer
J,i,count,min:integer
 
Присваиваем массиву случайные числа
For i:=0 to 6do
For j:=0 to 6 do
A[i,j]:=-50+random(100);
 
 
Дальше условие где мы только обрабатываем выше и ниже..диагонали 
For i:=0 to 6 do
For j:=0 to 6 do
Begin
 
If (i<>j) or i <> 6-j) then contine;
If (i<>5) and (j<>4) then contine;
If (i<>1)and(j<>4) then contine;
If a [i,j] <0 then
Count := count +1;
 
Выше нашли число отрицательных элементов выше гл диагонали и ниже побочной
 
End
 
 
Min := 1000;
For i=:0 to 6 do
If a[i,0];
 
A[6,6] := min;
 
Вывод информации
 
Write count);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 23:52     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали
Еще ссылки по теме:

C++ В двумерном массиве вывести все элементы выше главной диагонали и ниже побочной
Найти max среди элементов, лежащих ниже побочной, и min среди элементов, лежащих выше главной диагонали C++
Определить: сумма элементов выше главной диагонали меньше суммы элементов ниже главной диагонали? C++

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

Или воспользуйтесь поиском по форуму:
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
28.04.2014, 23:52  [ТС]     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали #15
Цитата Сообщение от _Ellen_ Посмотреть сообщение
Д
добрый вечер посмотрите выше, правильно?
Yandex
Объявления
28.04.2014, 23:52     Найти число отрицательных элементов в области выше главной и ниже побочной диагонали
Ответ Создать тему
Опции темы

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