Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 04:29   #1
Владимир31
 
Регистрация: 28.03.2011
Сообщений: 3
По умолчанию нужно разобраться с кодом

Определить минимальный положительный элемент главной диагонали матрицы А(5,5) и заменить все элементы строки и столбца,в котором он находится числом Z.
Друг помог сделать теперь не могу разобраться в коде
Код HTML:
#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();
}
Владимир31 вне форума Ответить с цитированием
Старый 28.03.2011, 04:48   #2
Владимир31
 
Регистрация: 28.03.2011
Сообщений: 3
По умолчанию

или можно как-то проще сделать?
Владимир31 вне форума Ответить с цитированием
Старый 28.03.2011, 06:47   #3
GroZa
Freelancer
Пользователь
 
Аватар для GroZa
 
Регистрация: 29.01.2011
Сообщений: 33
По умолчанию

Код:
#include <ctime>
#include <cstdlib>
#include <conio.h>
 
 
using namespace std;
 
int main()
{
                srand( ( unsigned ) time ( NULL ) );
                const int arrSize = 5;
                int T[ arrSize ][ arrSize ]; // матрица 5x5
// заполняет её случайными числам от -10 до 10 
                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;
 
        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++ ){ // заменяет строку indexRowCol и столбец indexRowCol значением мин. пол. элемента
                                                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(); // ожидания нажатия клавиши
}
falax species rerum
GroZa вне форума Ответить с цитированием
Старый 28.03.2011, 07:36   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Код:
srand( ( unsigned ) time ( NULL ) );
А unsigned-то тут зачем?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разобраться с кодом. Vlero PHP 2 20.01.2011 12:46
Не могу разобраться с кодом jey7 JavaScript, Ajax 1 17.06.2010 09:38
Нужно разобраться с программным кодом. DimaSSololo Помощь студентам 0 27.05.2010 00:00
Помогите разобраться с кодом С++ Noor Помощь студентам 20 10.10.2007 17:42