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

Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные - C++

Восстановить пароль Регистрация
 
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
25.03.2012, 21:46     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #1
матрица задается все нормально... но не выполняется условие..... условие такое:если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные....
вот моя прога помогите мне с этой программой:

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
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<iomanip.h>
#include<stdlib.h>
void main()
{
int i, j,n,m;
cout<<"vvedite n:"<<endl;
cin>>n;
cout<<"vvedite m:"<<endl;
cin>>m;
//pamyat pod din-i massiv
double **mass=new double*[n];
for(i=0; i<n; i++)
mass[i]=new double[m];
//op-em massiv
{
for(i=0; i<n; i++)
for(j=0; j<m; j++)
mass[i][j]=rand()%10;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<setw(6)<<mass[i][j]<<" ";
cout<<endl;
}
//vipolnyaem uslovie
for(i=0; i<n; i++)
for(j=0; j<n; j++)
if (mass[i][j]>0)
mass[i][j]=-mass[i][j];
cout<<"mass[i][j]="<<mass[i][j]<<" ";
cout<<endl;
}
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 21:46     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные
Посмотрите здесь:

Определить количество отрицательных элементов в тех строках матрицы, которые содержат хотя бы один нулевой элемент C++
Проверить, все ли строки матрицы содержат хотя бы один положительный элемент C++
В с++ такая задача: проверить, все ли столбцы матрицы содержат хотя бы один положительный элемент. C++
C++ Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент
C++ Матрицы. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
25.03.2012, 21:50     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #2
ты неправильно выполняешь условие, надо поменять знаки всей матрицы
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
25.03.2012, 22:16  [ТС]     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #3
а как ? может поможешь?.... и то что я сделал разве не поменяет знаки матрицы по идее должно...
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
25.03.2012, 23:01     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #4
ты только делаешь положительные элементы матрицы отрицательными
вот часть кода которая выполняет условие

C++
1
2
3
4
5
6
7
8
9
10
bool flag=0;
for (int i=0;i<n;i++)
    for (int j=0;j<n;j++)
        if (mass[i][j]>0) flag=1;
if (flag)
{
    for (int i=0;i<n;i++)
        for (int j=0;j<n;j++)
            mass[i][j]=-mass[i][j];
}
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
25.03.2012, 23:31  [ТС]     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #5
что означает flag?...
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.03.2012, 23:46     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #6
Цитата Сообщение от РАСУЛл Посмотреть сообщение
что означает flag?...
булевая переменная, которая принимает значение 1, если находит положительный элемент в матрице.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
25.03.2012, 23:47     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #7
Цитата Сообщение от РАСУЛл Посмотреть сообщение
что означает flag?...
Флаг это переменная логического типа bool, которая принимает значение единица, если в процессе поиска найден отрицательный элемент.
Если это так, то выполнится условие и запустится цикл, в котором мы проходим по массиву и меняем знак всем элементам.
Для оптимизации можешь сделать выход из первого цикла сразу, как найден положительный элемент, так как тогда условие выполнится хотя б для одного элемента и можно не искать других таких же в хвосте массива.
C
1
2
3
4
5
6
7
8
9
10
bool flag=0;
for (int i=0;i<n;i++)
    for (int j=0;j<n;j++)
        if (mass[i][j]>0) {flag=1; break; }
if (flag)
{
    for (int i=0;i<n;i++)
        for (int j=0;j<n;j++)
            mass[i][j]=-mass[i][j];
}
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
26.03.2012, 09:39  [ТС]     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #8
но оператора bool d c++ нету по крайней мере в борланде.... что делать тогда?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2012, 13:05     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные
Еще ссылки по теме:

C++ Если в строках или столбцах есть хотя бы один элемент равный нулю, заменить нулями все их элементы
Посчитать сумму отрицательных элементов в тех колонках матрицы, где есть хотя бы один положительный элемент C++
C++ Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент

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

Или воспользуйтесь поиском по форуму:
Kidasov
76 / 76 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 3
26.03.2012, 13:05     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные #9
В C++ есть тип bool, а в C его можно определить через макросы
C
1
2
3
#define bool int 
#define true 1
#define false 0
Yandex
Объявления
26.03.2012, 13:05     Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные
Ответ Создать тему
Опции темы

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