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

В матрице найти произведение над главной диагональю,если произведение делится на 3 заменить побочную диагональ 0. - C++

Восстановить пароль Регистрация
 
ZevS13
1 / 1 / 0
Регистрация: 05.12.2010
Сообщений: 15
05.12.2010, 19:07     В матрице найти произведение над главной диагональю,если произведение делится на 3 заменить побочную диагональ 0. #1
Нужно заменить элементы побочной диагонали нулями,если произведение парных элементов над главной диагональю делится на 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <iomanip>
#include "conio.h"
#include <math.h>
using namespace std;
int main ()
{
    int i, j, m, n, p=1, k,randu,s;
    setlocale (0,"Rus");
    cout << "\nВведите размер квадратной матрицы:" << endl;
    cout << "n="; cin >>n;
    cout << "m="; cin >>m;
    int **matr = new int *[n];
    //заполнение матрицы
    
    randu=time(NULL);
    for (i=0; i<n; i++)
        matr[i] = new int [m];
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++ ){
            matr[i][j]=abs((randu) % 11+1);
                            randu*=(randu+101);
               }
        /*Вывод матрицы*/
        for (int i=0; i<n; i++){
         for (int j=0; j<m; j++ ){
            
          cout<<setw(4)<< matr[i][j];
               }
         cout<<"\n";
      }
    /*вывод матрицы*/
    for (i=0; i<n; i++) {
        cout<<"\n\n";
        for (j=0; j<m; j++)         
            cout<< *(matr[i]+j) <<"\t";
    }
    cout<<"\n\n";
    //Вычисление произведения парных элементов над главной диагональю
    for (k=1, i=0; i<n-1; i++, k++) 
        for (j=k; j<m; j++) 
            if (matr[i][j]%2==0)
                p*=matr[i][j];
    cout<<"Произведение парных элементов над главной диагональю="<<p <<"\n";
    /*Если произведение делится на 3 заменяем побочную диагональ 0*/
    if(p%3==0 && p!=0 )
    {
        cout<<"Произведение парных элементов над главной диагональю делится 3="<<p/3<<",замена элементов побочной диагонали нулями"<<endl;
        for (i = 0; i < n; i++) {
        matr[i][i] = 0;
            
        for (j =n-1; j >= 0 ; j--) {
            matr[n-1-j][j] = 0;
        cout<<setw(4)<<matr[i][j];}
 
 
    }   
    }
    else
    {
        cout<<"Произведение парных элементов над главной диагональю не делится 3"<<endl;
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2010, 19:07     В матрице найти произведение над главной диагональю,если произведение делится на 3 заменить побочную диагональ 0.
Посмотрите здесь:

замена отрицательных элементов в матрице над главной диагональю C++
нужно поменять побочную и главную диагональ в матрице C++
C++ В матрице В ( 4 на 4) найти произведение элементов главной диагонали.
Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю C++
C++ вычислить сумму элементов матрицы над главной диагональю под главной диагональю и на главной диагонали
В матрице F(4,9) найти произведение элементов , что превышают заданное число B . Вывести матрицу и произведение . C++
C++ Вычислить произведение нечетных отрицательных элементов расположенных под главной диагональю матрицы
В динамичной квадратной матрице найти сумму элементов над главной диагональю C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Виктор92
1 / 1 / 0
Регистрация: 18.11.2010
Сообщений: 9
05.12.2010, 19:18     В матрице найти произведение над главной диагональю,если произведение делится на 3 заменить побочную диагональ 0. #2
C++
1
2
3
4
5
6
int j=m-1;
for (int i=0, i<n, i++)
{
matr[i][j]=0;
j--;
}
m - кол-во эл-ов в строке
n - в столбце
ZevS13
1 / 1 / 0
Регистрация: 05.12.2010
Сообщений: 15
05.12.2010, 20:03  [ТС]     В матрице найти произведение над главной диагональю,если произведение делится на 3 заменить побочную диагональ 0. #3
спасибо

Добавлено через 27 минут
переделал,но не могу вывести новую матрицу.......может я что то не правильно делаю??просто уже долго сижу мозг плавится.....поправьте если что то не так...
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* 4.5.cpp : Среди элементов матрицы, что находятся высше главной диагонали, найти произведение парных элементов */
 
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <iomanip>
#include "conio.h"
#include <math.h>
using namespace std;
int main ()
{
    int i, j, m, n, p=1, k,randu;
    setlocale (0,"Rus");
    cout << "\nВведите размер квадратной матрицы:" << endl;
    cout << "n="; cin >>n;
    cout << "m="; cin >>m;
    //объявление и заполнение двумерного массива
    int **matr = new int *[n];
    randu=time(NULL);
    for (i=0; i<n; i++)
        matr[i] = new int [m];
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++ ){
            matr[i][j]=abs((randu) % 11+1);
                            randu*=(randu+101);
               }
        /*Вывод матрицы*/
        for (int i=0; i<n; i++){
         for (int j=0; j<m; j++ ){
            
          cout<<setw(4)<< matr[i][j];
               }
         cout<<"\n";
      }
    /*вывод матрицы*/
    for (i=0; i<n; i++) {
        cout<<"\n\n";
        for (j=0; j<m; j++)         
            cout<< *(matr[i]+j) <<"\t";
    }
    cout<<"\n\n";
    //Вычисление произведения парных элементов над главной диагональю
    for (k=1, i=0; i<n-1; i++, k++) 
        for (j=k; j<m; j++) 
            if (matr[i][j]%2==0)
                p*=matr[i][j];
    cout<<"Произведение парных элементов над главной диагональю="<<p <<"\n";
    /*Если произведение делится на 3 заменяем побочную диагональ 0*/
    if(p%3==0 && p!=0 )
    {
        cout<<"Произведение парных элементов над главной диагональю делится 3="<<p/3<<",замена элементов побочной диагонали нулями"<<endl;
        
        
        j=m-1;
        for (int i=0; i<n, i++;)
        {
        matr[i][j]=0;
        j--;
        } 
        /*Вывод матрицы*/
         
    
        for (int i=0; i<n; i++){
         for (int j=0; j<m; j++ ){
            
          cout<<setw(4)<<matr[i][j];
               }
         cout<<"\n";
      }
    /*вывод матрицы*/
    for (int i=0; i<n; i++) {
        cout<<"\n\n";
        for (int j=0; j<m; j++)         
            cout<< *(matr[i]+j) <<"\t";
    }
    cout<<"\n\n";
 
    }
    
    
    else
    {
        cout<<"Произведение парных элементов над главной диагональю не делится 3"<<endl;
    }
    system("pause");
    return 0;
}
Yandex
Объявления
05.12.2010, 20:03     В матрице найти произведение над главной диагональю,если произведение делится на 3 заменить побочную диагональ 0.
Ответ Создать тему
Опции темы

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