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

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

25.03.2012, 21:46. Показов 1397. Ответов 8
Метки нет (Все метки)

матрица задается все нормально... но не выполняется условие..... условие такое:если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные....
вот моя прога помогите мне с этой программой:

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();
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 21:46
Ответы с готовыми решениями:

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

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

Если в строке матрицы есть хотя бы один нулевой элемент, то найти произведение всех ненулевых элементов
Задана матрица Z(5,5). Если в строке есть хотя бы один нулевой элемент, то найти произведение всех...

Номер первой из строк матрицы, содержащих хотя бы один положительный элемент
Дана целочисленная квадратная матрица. Определить: 1)номер первой из строк, содержащих хотя бы...

8
399 / 355 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
25.03.2012, 21:50 2
ты неправильно выполняешь условие, надо поменять знаки всей матрицы
0
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
25.03.2012, 22:16  [ТС] 3
а как ? может поможешь?.... и то что я сделал разве не поменяет знаки матрицы по идее должно...
0
399 / 355 / 36
Регистрация: 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];
}
0
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
25.03.2012, 23:31  [ТС] 5
что означает flag?...
0
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
25.03.2012, 23:46 6
Цитата Сообщение от РАСУЛл Посмотреть сообщение
что означает flag?...
булевая переменная, которая принимает значение 1, если находит положительный элемент в матрице.
0
3412 / 2771 / 751
Регистрация: 25.03.2012
Сообщений: 10,073
Записей в блоге: 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];
}
0
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
26.03.2012, 09:39  [ТС] 8
но оператора bool d c++ нету по крайней мере в борланде.... что делать тогда?
0
79 / 78 / 35
Регистрация: 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
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2012, 13:05

Проверить, все ли строки матрицы содержат хотя бы один положительный элемент
проверить , все ли строки матрицы содержат хотя бы один положительный элемент . если да, то...

Определить номер первой из строк матрицы, содержащих хотя бы один положительный элемент
Дана целочисленная квадратная матрица. Определить: * номер первой из строк, содержащих хотя бы...

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

Найти номер первой из строк матрицы, содержащий хотя бы один положительный элемент
Дана целочисленная прямоугольная матрица.Найти номер первой из строк, содержащий хотя бы один...

Найти номер первой из строк матрицы, содержащих хотя бы один положительный элемент
Уплотнить заданную матрицу , удаляя из неё строки и столбцы , заполненные нулями. Найти номер...

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


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

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

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