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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Владимир31
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 14
#1

нужно разобраться в коде - C++

28.03.2011, 04:48. Просмотров 348. Ответов 1
Метки нет (Все метки)

Определить минимальный положительный элемент главной диагонали матрицы А(5,5) и заменить все элементы строки и столбца,в котором он находится числом Z.
Друг помог сделать теперь не могу разобраться в коде
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
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
#include <conio.h>
 
 
using namespace std;
 
int main()
{
        srand( ( unsigned ) time ( NULL ) );
        const int arrSize = 5;
        int T[ arrSize ][ arrSize ];
        for ( int i = 0; i < arrSize; i++ ) {
                for ( int j = 0; j < arrSize; j++ ) {
                        T[ i ][ j ] = rand() % 21 - 10;
                }
        }
        cout << "\n\nArray:\n";
        for ( int i = 0; i < arrSize; i++ ){
                for ( int j = 0; j < arrSize; j++ )
                        cout << setw( 4 ) << T[ i ][ j ];
                cout << endl;
        }
 
        int indexRowCol = 0;
 
        for ( int i = 0; i < arrSize; i++ ) {
                if ( T[ i ][ i ] >= 0 && T[ indexRowCol ][ indexRowCol ] < 0 ) {
                        indexRowCol = i;
                }
                else if ( T[ i ][ i ] >= 0 && T[ indexRowCol ][ indexRowCol ] >= 0 && T[ i ][ i ] < T[ indexRowCol ][ indexRowCol ] ) {
                        indexRowCol = i;
                }
        }
 
        cout << "Index - " << indexRowCol << endl;
 
        if ( T[ indexRowCol ][ indexRowCol ] < 0 )
                indexRowCol = -1;
 
        if ( indexRowCol >= 0 ) {
                cout << "\n\nMinimal element of main diagonal in matrix T[ " << indexRowCol << " ][ "
                          << indexRowCol << " ] is " << T[ indexRowCol ][ indexRowCol ] << endl;
                int temp = T[ indexRowCol ][ indexRowCol ];
                for ( int i = 0; i < arrSize; i++ ){
                        for ( int j = 0; j < arrSize; j++ )
                                if ( i == indexRowCol || j == indexRowCol)
                                        T[ i ][ j ] = temp;
                }
 
 
                cout << "\n\nArray:\n";
                for ( int i = 0; i < arrSize; i++ ){
                        for ( int j = 0; j < arrSize; j++ )
                                cout << setw( 4 ) << T[ i ][ j ];
                        cout << endl;
                }
                cout << endl << endl;
        }
        else
                cout << "\n\nMatrix does not have positive elements in main diagonal\n\n";
          getch();
}
Добавлено через 37 минут
или можно как-то проще сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2011, 04:48     нужно разобраться в коде
Посмотрите здесь:

Нужно разобраться в коде - C++
Написать программу, которая в произвольном текстовом файле определяет количество предложений и слов, строчных и заглавных символов, знаков...

Нужно разобраться в коде - C++
Господа, я новичок. Хочу разобраться в коде. Задача была изменить размер консольного окна. И, поискав на форуме, нашел ниже написанный...

Нужно разобраться в коде - C++
Откомментируйте пожалуйста по строчке ,кто ,что может,а то не могу разобраться,это программа обход бинарного дерева в глубину справа налево...

Значения в матрице. Нужно разобраться в коде с++ человеку не знающему языка - C++
Добрый день. На просторах интернета нашел программу, она уравнивает химическую реакцию в переданной ей строчке. Написана языке c++ пытаюсь...

Разобраться в коде - C++
Алгоритм сортирует элементы матрицы согласно схеме (см. изображение), в порядке убывания и методом пузырька. Происходит движение: 1) вниз...

Разобраться с ошибками в коде - C++
что я делаю неправильно вот код программы #include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; int main () { ...

Не могу разобраться в коде - C++
На просторах форума нашёл полезный для меня код, но не понимаю ничего, что написанно в циклах ниже 33 строки (там где подцикл...

пмг разобраться в коде - C++
#include &quot;stdio.h&quot; int main() { const int N=9; int mas={1,2,3,4,5,6,7,8,9}, l=0, r=N-1, i_temp, i, temp; ...

Не могу разобраться в коде - C++
Всем дня доброго.В плюсах я ровным счетом 0.Расшифровать по нормальному не могу.Отрывок из кода описывающего программы шахматы. bool...

Разобраться с ошибками в коде - C++
подскажите, ошибки в коде есть подчеркиваются &quot;красным&quot; они, препод говорит, что это связано с неуниверсальностью кода код: #include...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
28.03.2011, 05:58     нужно разобраться в коде #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
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
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
#include <conio.h>
 
 
using namespace std;
 
int main()
{
 
//Генерируется матрица из случайных чисел
                srand( ( unsigned ) time ( NULL ) );
                const int arrSize = 5;
                int T[ arrSize ][ arrSize ];
                for ( int i = 0; i < arrSize; i++ ) {
                                for ( int j = 0; j < arrSize; j++ ) {
                                                T[ i ][ j ] = rand() % 21 - 10;
                                }
                }
 
//Эта матрица выводится на экран
                cout << "\n\nArray:\n";
                for ( int i = 0; i < arrSize; i++ ){
                                for ( int j = 0; j < arrSize; j++ )
                                                cout << setw( 4 ) << T[ i ][ j ];
                                cout << endl;
                }
 
                int indexRowCol = 0;
// indexRowCol содержит текущее значение номера строки минимального элемента диагонали, для начала берется нулевая строка
                for ( int i = 0; i < arrSize; i++ ) {
                                if ( T[ i ][ i ] >= 0 && T[ indexRowCol ][ indexRowCol ] < 0 ) { //если предыдущий элемент был меньше нуля, а новый больше, то новый элемент делаем текущим
                                                indexRowCol = i;
                                }
                else if ( T[ i ][ i ] >= 0 && T[ indexRowCol ][ indexRowCol ] >= 0 && T[ i ][ i ] < T[ indexRowCol ][ indexRowCol ] ) { //если новый элемент больше нуля и текущий больше нуля и новый меньше чем текущий, делаем новый элемент текущим
                        indexRowCol = i;
                                }
        }
 
                cout << "Index - " << indexRowCol << endl;
 //если не нашли корректный элемент (все меньше нуля), то индекс ставим -1
        if ( T[ indexRowCol ][ indexRowCol ] < 0 )
                indexRowCol = -1;
 
//выводим на экран минимальный элемент
                if ( indexRowCol >= 0 ) {
                cout << "\n\nMinimal element of main diagonal in matrix T[ " << indexRowCol << " ][ "
                          << indexRowCol << " ] is " << T[ indexRowCol ][ indexRowCol ] << endl;
 
//делаем замену строки и столбца на найденый ранее минимальный элемент
                int temp = T[ indexRowCol ][ indexRowCol ];
                for ( int i = 0; i < arrSize; i++ ){
                                                for ( int j = 0; j < arrSize; j++ )
                                if ( i == indexRowCol || j == indexRowCol)
                                        T[ i ][ j ] = temp;
                                }
 
 //выводим все на экран
                cout << "\n\nArray:\n";
                for ( int i = 0; i < arrSize; i++ ){
                        for ( int j = 0; j < arrSize; j++ )
                                cout << setw( 4 ) << T[ i ][ j ];
                                                cout << endl;
                }
                cout << endl << endl;
        }
        else
                                cout << "\n\nMatrix does not have positive elements in main diagonal\n\n";
                  getch();
}
Добавлено через 1 минуту
тут все предельно просто )
Yandex
Объявления
28.03.2011, 05:58     нужно разобраться в коде
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru