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

исправить условие!!! - C++

Восстановить пароль Регистрация
 
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
06.04.2012, 21:29     исправить условие!!! #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
38
39
40
41
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<iomanip.h>
#include<stdlib.h>
#include<float.h>
void main()
{
int i, j,n,m;
cout<<"vvedite n:"<<endl;
cin>>n;
cout<<"vvedite m:"<<endl;
cin>>m;
//выделяем память под динамический массив
double **mass=new double*[n];
for(i=0; i<n; i++)
mass[i]=new double[m];
//опр-ем матрицу
{
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;
}
//выполняем условие
for(i=0; i<n; i++)
for(j=0; j<n; j++)
if (mass[i][j]>0)
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
mass[i][j]=mass[i][j]*(-1);
cout<<"mass[i][j]="<<mass[i][j]<<" ";
cout<<endl;
}}
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 21:29     исправить условие!!!
Посмотрите здесь:

C++ условие в if
C++ Условие
Условие в while C++
условие C++
C++ условие
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
User1990
26 / 26 / 2
Регистрация: 03.11.2009
Сообщений: 158
06.04.2012, 22:54     исправить условие!!! #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
здесь определяем хотя один полож элемент, затем прерываем вложен циклы
for(i=0;i<m;i++){
 
for(j=0;j<n;j++)
{
if(mas[i][j]>0) break;
 
}
if(j!=n)  break;
 
}
и превращаем элементы в отриц
for (i=0;i<m;i++){
for(j=0;j<n;j++)
mas[i][j]=mas[i][j]*(-1);
}
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
06.04.2012, 23:11  [ТС]     исправить условие!!! #3
вот ответ :
1.509513е-315
1.52376е-315
1.538007е-315
1.554452у-315
7.3656у-218
что то не так....только что?
User1990
26 / 26 / 2
Регистрация: 03.11.2009
Сообщений: 158
06.04.2012, 23:16     исправить условие!!! #4
что это за цифры.... может использовать простой int вместо double .
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
06.04.2012, 23:42  [ТС]     исправить условие!!! #5
не знаю...
мне знаешь что нужно по условию проверить все строки матрицы если же в каждой строке есть положительный эл-т то нужно поменять знаки всей матрицы на противоположные ....если же хотя бы в одной строке нету положительных эл-ов то условие отменяется и нужно вывести например "не во всех строках есть положительные эл-ты"....

Добавлено через 16 минут
народ помогите!!!
User1990
26 / 26 / 2
Регистрация: 03.11.2009
Сообщений: 158
06.04.2012, 23:52     исправить условие!!! #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
p=0;
for(i=0;i<m;i++){
 
for(j=0;j<n;j++)
if(mas[i][j]>0) {
p++;
break;} тогда делаем так , т.е. в каждой строке ищем до первого полож
}
if(p==m){если кол-во найденных элементов совпадает с кол строк , то меняем на противополож знаки
for (i=0;i<m;i++){
for(j=0;j<n;j++)
mas[i][j]=mas[i][j]*(-1);
}
 }else
std::cout <<"не во всех есть полож элем"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2012, 21:50     исправить условие!!!
Еще ссылки по теме:

C++ Условие if
Условие C++
C++ Найти максимальную цифру в записи числа на С++ (исправить условие цикла)

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

Или воспользуйтесь поиском по форуму:
РАСУЛл
2 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 68
07.04.2012, 21:50  [ТС]     исправить условие!!! #7
да работает отдуши))) спасибо братан)))
Yandex
Объявления
07.04.2012, 21:50     исправить условие!!!
Ответ Создать тему
Опции темы

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