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

В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку - C++

Восстановить пароль Регистрация
 
Artem13rus
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 3
09.01.2013, 13:37     В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку #1
Вот задание: В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку.

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>
#include <cstdlib>
#include <iomanip>
using namespace std;
const int M=30;
const int N=30;
 
int main() {
    int m,n;
 
    int matr[M][N];
    cout<<"Введите кол-во строк матрицы:"<<endl;
    cin>>m;
    cout<<"Введите кол-во столбцов матрицы:"<<endl;
    cin>>n;
    form(matr[][N],m,n);
    print(matr[][N],m,n);
      for(int i=0; i<m; i++)
          for (int j=0; j<n; j++)
              if (matr[i][j]!=0)
                  matr[i][j]=-1/matr[i][j];
      print(matr[][N],m,n);
      return 0;
}
 int form(int arr[][N], int k, int l)
 { cout<<"Ввод элементы матрицы:"<<endl;
 for(int i=0;i<k;i++)
     for(int j=0;j<l;j++)
        cin>>matr[i][j];
 return 0;
 }
 int print(int arr[][N],int k, int l)
 { cout<<"Матрица:"<<endl;
 for(int i=0;i<k;i++)
    {for (int j=0;j<n;j++)
        cout<<setw(8)<<arr[i][j];
    cout<<endl;
 
    }
         return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 13:37     В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку
Посмотрите здесь:

C++ Как заменить все нулевые элементы на произведение элементов строки, где находится минимум
Заменить все минимальные элементы противоположными по значению C++
Заменить все отрицательные элементы ,не кратные 3,противоположными им числами. C++
Все отрицательные элементы массива уменьшить в двое, а все нулевые элементы заменить на... C++
Заменить все элементы k-й строки и s-го столбцаматрицы на противоположные по знаку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
09.01.2013, 13:49     В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку #2
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main() 
{
    srand(time(0));
    const int rows = 5;
    const int colls = 4;
    int matrix[rows][colls];
    
    std::cout << "Matrix: " << std::endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < colls; j++)
            std::cout << std::setw(5) << (matrix[i][j] = rand() % 5);
        std::cout << std::endl;
    }
    
    std::cout << "New matrix: " << std::endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < colls; j++) 
            std::cout << std::setw(5) << (matrix[i][j] = (matrix[i][j]) ? (matrix[i][j] * (-1)) : matrix[i][j]);
        std::cout << std::endl;
    }
    
    system("pause");
    return 0;
}
Artem13rus
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 3
09.01.2013, 14:08  [ТС]     В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку #3
у тебя просто знак не нулевых элементов меняется на противоположный, нужно ещё перед этим заменить не нулевые значения заменить обратными по величине.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
09.01.2013, 14:51     В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку #4
Artem13rus, ошибся. Не хватает извилин даже это исправить? у самого же в коде даже написано как правильно.

Добавлено через 1 минуту
Цитата Сообщение от Artem13rus Посмотреть сообщение
C++
1
-1/matr[i][j]
Цитата Сообщение от Ev[G
eN;3973419]
C++
1
(matrix[i][j] * (-1))
никак?
C++
1
(-1 / matrix[i][j])
Добавлено через 3 минуты
короче..
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main() 
{
    srand(time(0));
    const int rows = 5;
    const int colls = 4;
    double matrix[rows][colls];
    
    std::cout << "Matrix: " << std::endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < colls; j++)
            std::cout << std::setw(5) << (matrix[i][j] = rand() % 5);
        std::cout << std::endl;
    }
    
    std::cout << "New matrix: " << std::endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < colls; j++) 
            std::cout << std::setw(8) << std::setprecision(1) << (matrix[i][j] = (matrix[i][j]) ? (-1. / matrix[i][j]) : matrix[i][j]);
        std::cout << std::endl;
    }
    
    system("pause");
    return 0;
}
Yandex
Объявления
09.01.2013, 14:51     В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку
Ответ Создать тему
Опции темы

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