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

Массивы. Поменять все элементы над главной диагональю на 1 - C++

Восстановить пароль Регистрация
 
bjakurawka
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 9
20.01.2014, 15:04     Массивы. Поменять все элементы над главной диагональю на 1 #1
поменять все элементы над главной диагональю на 1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 15:04     Массивы. Поменять все элементы над главной диагональю на 1
Посмотрите здесь:

замена отрицательных элементов в матрице над главной диагональю C++
C++ Найти сумму элементов находящиеся над главной диагональю
кол-во над главной диагональю C++
Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю C++
C++ Программа про файлы (Записать построчно в другой файл сначала элементы, находящиеся над главной диагональю, затем...)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.01.2014, 15:08     Массивы. Поменять все элементы над главной диагональю на 1 #2
C++
1
2
3
0 1 1
0 0 1
0 0 0

Не по теме:

Каков вопрос, таков ответ.

OksiL
 Аватар для OksiL
3 / 3 / 0
Регистрация: 19.03.2013
Сообщений: 14
20.01.2014, 15:20     Массивы. Поменять все элементы над главной диагональю на 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
#include <iostream>
#include <locale>
using namespace std;
int main()
{
    setlocale(0, "rus");
    int n = 0, m = 0, i = 0, j = 0, matr[100][100];
    cout << "Введите кол-во строк матрицы - ";
    cin >> n;
    cout << "Введите кол-во столбцов матрицы - ";
    cin >> m;
    cout << "\nЗаполните матрицу.\n";
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
            cout << "Matrix[" << i << "][" << j << "] = ";
            cin >> matr[i][j];
        }
        cout << "\nИзвестная матрица:" << endl;
        for(i = 0;i < n; i++)
        {
            cout << endl;
            for(j = 0; j < m; j++)
                cout << matr[i][j] << "\t";
        }
        cout<<endl;
        for(i = 0; i < n; i++)
            for(j = 0; j < m; j++)
            {
                if ((i < j) && (i + j - 1 < n + 2))
                    matr[i][j] = 1;
            }
            cout << "Преобразованная матрица: " << endl;
            for(i = 0; i < n; i++)
            {
                cout << endl;
                for(j = 0; j < m; j++)
                    cout << matr[i][j] << "\t";
            }
            cout << endl;
            cin.sync();
            cin.ignore();
            return 0;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
20.01.2014, 15:23     Массивы. Поменять все элементы над главной диагональю на 1 #4
Цитата Сообщение от OksiL Посмотреть сообщение
C++
1
2
3
4
5
int n = 0, m = 0, i = 0, j = 0, matr[100][100];
* * cout << "Введите кол-во строк матрицы - ";
* * cin >> n;
* * cout << "Введите кол-во столбцов матрицы - ";
* * cin >> m;
раз уж на то пошло, я думаю, что целесообразней выделить память динамически. зачем выделять её под 10 000 элементов, а использовать всего 9(к примеру)?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
20.01.2014, 15:35     Массивы. Поменять все элементы над главной диагональю на 1 #5
А если все же делать в статике, то вот это место надо было зациклить:
C++
8
9
10
11
    cout << "Введите кол-во строк матрицы - ";
    cin >> n;
    cout << "Введите кол-во столбцов матрицы - ";
    cin >> m;
Чтобы нельзя было задать размерность больше.
OksiL
 Аватар для OksiL
3 / 3 / 0
Регистрация: 19.03.2013
Сообщений: 14
20.01.2014, 15:52     Массивы. Поменять все элементы над главной диагональю на 1 #6
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
#include <iostream>
#include <locale>
using namespace std;
int main()
{
    setlocale(0, "rus");
    int n = 0, m = 0, i = 0, j = 0;
    cout << "Введите кол-во строк матрицы - ";
    cin >> n;
    cout << "Введите кол-во столбцов матрицы - ";
    cin >> m;
    int **matr = new int *[n];
    cout << "\nЗаполните матрицу.\n";
    for (i = 0; i < n; i++)
    {
        matr[i] = new int [m];
        for (j = 0; j < m; j++)
        {
            cout << "Matrix[" << i << "][" << j << "] = ";
            cin >> matr[i][j];
        }
    }
        cout << "\nИзвестная матрица:" << endl;
        for(i = 0;i < n; i++)
        {
            cout << endl;
            for(j = 0; j < m; j++)
                cout << matr[i][j] << "\t";
        }
        cout<<endl;
        for(i = 0; i < n; i++)
            for(j = 0; j < m; j++)
            {
                if ((i < j) && (i + j - 1 < n + 2))
                    matr[i][j] = 1;
            }
            cout << "Преобразованная матрица: " << endl;
            for(i = 0; i < n; i++)
            {
                cout << endl;
                for(j = 0; j < m; j++)
                    cout << matr[i][j] << "\t";
            }
            for (i = 0; i < n; i++)
                delete [] matr[i];
            delete [] matr;
            cout << endl;
            cin.sync();
            cin.ignore();
            return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2014, 17:20     Массивы. Поменять все элементы над главной диагональю на 1
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
20.01.2014, 17:20     Массивы. Поменять все элементы над главной диагональю на 1 #7
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main()
{
    std::srand((size_t)(std::time)(nullptr));
    
    size_t matrixSize;
    std::cout << "N: ";
    std::cin >> matrixSize;
 
    int **matrix = new int *[matrixSize];
    std::cout << "Matrix: " << std::endl;
    for (size_t i = 0; i < matrixSize; i++) {
        *(matrix + i) = new int[matrixSize];
        for (size_t j = 0; j < matrixSize; j++) {
            std::cout << std::setw(5) << (*(*(matrix + i) + j) = std::rand() % 9);
        }
        std::cout << std::endl;
    }
 
    std::cout << "New matrix: " << std::endl;
    for (size_t i = 0; i < matrixSize; i++) {
        for (size_t j = 0; j < matrixSize; j++) {
            std::cout << std::setw(5) << (*(*(matrix + i) + j) = (i < j) && (i + j - 1 < matrixSize + 2) ? 1 : *(*(matrix + i) + j));
        }
        std::cout << std::endl;
    }
 
    for (size_t i = 0; i < matrixSize; i++) {
        delete [] *(matrix + i);
    }
    delete [] matrix;
    matrix = nullptr;
 
    std::system("pause");
    return 0;
}
Yandex
Объявления
20.01.2014, 17:20     Массивы. Поменять все элементы над главной диагональю на 1
Ответ Создать тему
Опции темы

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