Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 04.04.2016
Сообщений: 3
1

Возвести в квадрат побочную диагональ матрицы, если главная возрастает

04.04.2016, 13:13. Показов 2780. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Целочисленная матрица а(7,7).
Преобразовать матрицу по правилу, если элементы матрицы на главной диагонали образуют возрастающую последовательность, то элементы побочной диагонали возвести в квадрат.

Помогите решить задачу, с меня огромное СПАСИБО!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2016, 13:13
Ответы с готовыми решениями:

Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную диагональ матрицы, если в ней найдется хоть один отриц
Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную...

Каждый второй элемент матрицы возвести в квадрат если он отрицателен
Ввести двумерный массив АN*M . Каждый второй элемент, в том случае, если он отрицателен, возвести в...

Если введенное число отрицательное и четное, то возвести его в 3 степень, иначе возвести в квадрат
Ввести целое число В. Если В отрицательное и четное, то возвести его в 3 степень, иначе возвести в...

обнулить побочную диагональ матрицы
Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную...

6
102 / 95 / 104
Регистрация: 29.11.2009
Сообщений: 407
04.04.2016, 13:35 2
weedkilla,
C++
1
2
3
4
5
6
7
8
9
10
for(int i=0;i<size-1;i++){
    if(a[i][i]>=a[i+1][i+1]){
        flag = 1;
    }
}
if(flag !=1){
    for(int i=0;i<size;i++){
        a[i][size-i-1] = a[i][size-i-1]*a[i][size-i-1];
    }
}
1
0 / 0 / 0
Регистрация: 04.04.2016
Сообщений: 3
05.04.2016, 16:02  [ТС] 3
а можешь всю написать?
0
102 / 95 / 104
Регистрация: 29.11.2009
Сообщений: 407
05.04.2016, 16:14 4
weedkilla, рандом врядли заполнит матрицу так, как вам нужно, поэтому сделайте вместо рандома функцию
C++
1
cin>>a[i][j];
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
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
    int size;
    cout<<"input matrix size ";
    cin>>size;
    int** a=new int*[size];
    for(int i=0; i<size;i++) {
        a[i]=new int[size];
    }
    for (int j=0;j<size;j++){
        cout<<endl;
        for (int i=0;i<size;i++){
            a[j][i] = 1 + rand()%100;
            cout<<a[j][i]<<" ";
        }
    }
 
    cout<<endl;
    for(int i=0;i<size-1;i++){
       if(a[i][i]>=a[i+1][i+1]){
            flag = 1;
        }
    }
    if(flag !=1){
        for(int i=0;i<size;i++){
            a[i][size-i-1] = a[i][size-i-1]*a[i][size-i-1];
        }
    }
    for (int j=0;j<size;j++){
        cout<<endl;
        for (int i=0;i<size;i++){
            cout<<a[j][i]<<" ";
        }
    }
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.04.2016
Сообщений: 3
11.04.2016, 10:54  [ТС] 5
а что делать с Flag, я так понял он не объявлен
0
102 / 95 / 104
Регистрация: 29.11.2009
Сообщений: 407
11.04.2016, 11:07 6
weedkilla, если флаг равен 1, то элементы образуют нужную вам последовательность, если нет - то не образуют ... по этому условию и преобразуем матрицу ...

Добавлено через 1 минуту
weedkilla,
C++
1
2
3
4
5
6
7
8
9
int flag = 0;
for(int i=0;i<size-1;i++){
       if(a[i][i] < a[i+1][i+1]){  // если каждый элемент диагонали меньше следующего флаг будет 1
            flag = 1;
        }else{                            // в противном случае, это не так ... выходим из цикла, флаг в 0
            flag = 0;
            break;
        }
    }
1
28 / 20 / 97
Регистрация: 22.10.2015
Сообщений: 304
11.04.2016, 14:47 7
TimeTwo,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool flag=true;
for(int i=0;i<size-1;i++)
       if(a[i][i]<a[i+1][i+1])
       {
            flag = false;
            break;
        }
    
if(flag)
    for(int i=0;i<size;i++){
        a[i][size-i-1] = a[i][size-i-1]*a[i][size-i-1];
        
    }
0
11.04.2016, 14:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2016, 14:47
Помогаю со студенческими работами здесь

Обнулить побочную диагональ матрицы
Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную...

Отсортировать побочную диагональ матрицы по убыванию
Здравствуйте уважаемые форумчане. Необходимо написать программу для сортировки массива 4х4...

Упорядочить по убыванию побочную диагональ матрицы
Вот листинг где сортируеться по главной диагонале не знаю как сделать чтоб по побочной.Если не...

Найти верхнюю побочную диагональ матрицы
Есть матрица: A 2 1 0 0 0 3 7 3 0 0 0 2 6 3 0 0 0 0 1 2 0 0 0 1 2 Нижняя побочная диагональ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru