Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Прямоугольный массив 
:(
    Опции темы
GotNothing
Дата 12.6.2007, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 7.1.2007

Репутация: нет
Всего: нет



Дана целочисленная прямоугольная матрица. Определить:
сумму эл-тов в тех строках, которые содержат хотя бы один отрицательный эл-т (оформить в виде функции);
номера строк и столбцов всех седловых точек матрицы (оформить в виде процедуры).
Примечание. Матрица А имеет седловую точку Аij, если Аij является минимальным элементом в i-й строке и максимальным в j-м столбце.

Умоляю сделайте задачку, с сессией жопа((  smile 
PM MAIL   Вверх
apook
Дата 12.6.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 10
Всего: 23



Цитата

  0:: #include "stdio.h"
  1:: #include "stdlib.h"
  2:: 
  3:: #include "conio.h"
  4:: 
  5:: #define N 6 
  6:: #define M 6
  7:: 
  8:: int saddle[ N ][ 2 ];
  9:: 
 10:: void Print( int m_val[][ M ] )
 11:: {
 12:: textattr( '\x0d' );
 13:: 
 14:: for( int i=0, c=0; i<N; i++ )
 15:: {
 16::     for( int j=0; j<M; j++ )
 17::     if( i==saddle[ c ][ 0 ] && j==saddle[ c ][ 1 ] )
 18::     {
 19::         cprintf( "%4d", m_val[ i ][ j ] );
 20::         ++c; 
 21::         }
 22::     else
 23::         printf( "%4d", m_val[ i ][ j ] );
 24::     putc( '\n', stdout );
 25::     }
 26:: putc( '\n', stdout );
 27:: }
 28:: 
 29:: 
 30:: void saddle_node( int m_val[][ M ] )
 31:: {
 32:: int i, j, q=0, c, _saddle=0, min;
 33:: 
 34:: for( i=0; i<M; i++ )
 35:: {
 36::     //найдем элемент ряда соответствующий максимальному элементу столбца
 37::     min=m_val[ 0 ][ i ];
 38::     for( j=0, _saddle=0; j<N; j++ )
 39::     {
 40::         if( min<m_val[ j ][ i ] )
 41::         {
 42::             min=m_val[ j ][ i ];
 43::             _saddle=j;
 44::             }
 45::         }
 46:: 
 47::     //проверим седловой ли он
 48::     for( c=0; c<M; c++ )
 49::         if( m_val[ _saddle ][ c ]<m_val[ _saddle ][ i ] )
 50::             break;
 51:: 
 52::     if( c==M ) //...значит да
 53::     {
 54::         for( j=0; j<q; j++ ) //...прорверим встречался ли этот рядок ранее
 55::            if( saddle[ j ][ 0 ]==_saddle )
 56::                break;
 57::         //запомнить координаты...
 58::         if( j==q )
 59::         {
 60::             saddle[ q ][ 0 ]=_saddle;
 61::             saddle[ q ][ 1 ]=i;
 62::             ++q;
 63::             }
 64::         }
 65::     }
 66:: return;
 67:: }
 68:: 
 69:: void SETS( int m_val[][ M ] )
 70:: {
 71:: int i, j, c, X=0;
 72:: 
 73:: for( i=0; i<N; i++ )
 74::     for( j=0; j<M; j++ )
 75::         if( m_val[ i ][ j ]<0 )
 76::         {
 77::             for( c=0; c<M; c++ )
 78::                 X+=m_val[ i ][ c ];
 79::             printf( "Row %d Summa Elementov = %d", i, X );
 80::             break;
 81::             }  
 82:: return;
 83:: }
 84:: 
 85:: void main()
 86:: {
 87:: int m_val[ N ][ M ]={
 88::     1, 3, 5, 1, 4, 2,
 89::     2, 6, 4, 0, 8, 4, 
 90::     5, 6, 7, 5, 9, 9,
 91::     0, 4, 5,-1, 4, 2,
 92::     4, 9, 6, 0, 2, 8, 
 93::     9, 8, 7, 6, 7, 8 }, i, j;
 94:: 
 95:: for( i=0; i<N; i++ )
 96::     for( j=0; j<2; j++ )
 97::         saddle[ i ][ j ]=-1;
 98:: 
 99:: 
100:: saddle_node( m_val );
101:: Print( m_val );
102:: SETS( m_val );
103:: 
104:: getch();
105:: }



--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Dov
Дата 12.6.2007, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Код

#include<iostream>
#include<iomanip>

#define SZ 5

void Print(int matr[][SZ])   
{
    int i, j;

    for(i = 0; i < SZ; i++)
    {
        for(j = 0; j < SZ; j++)           
            cout << setw(4) << matr[i][j];
        cout << endl;
    }    
}

bool isNegative(int* ar)
{
    for(int i = 0; i < SZ; i++)
        if(ar[i] < 0)
            return true;

    return false;
}

int Sum(int* ar)
{
    int i, sum = 0;
    
    for(i = 0; i < SZ; i++)
        sum += ar[i];                
    
    return sum;
}

void Sedlo(int matr[][SZ])
{   
    int  min, max;
    int  i, j, k;
    bool found = false;    
   
    for(i = 0; i < SZ; i++)
    {
        min = matr[i][0];
        for(j = 1; j < SZ; j++)
            if(matr[i][j] < min)
                min = matr[i][j];                                    
        
        for(j = 0; j < SZ; j++)
        {
            if(matr[i][j] == min)
            {
                max = matr[0][j];
                for(k = 1; k < SZ; k++)
                    if(matr[k][j] > max)
                        max = matr[k][j];
                if(min == max)
                {
                    found = true;
                    cout << "\n  Index: [" << i << "][" << j << ']';
                }
            }
        }
    }
    cout << endl;
    if(!found)
       cout << "Sedlovoy tochki net...\n";
}

int main()
{    
    int matr[][SZ] = {
               7, -1,  8, 12,  9, 
              14, 19, 13, 15, 17,
               1, 16,  0, 11, 14,
              13, 21, 13, 22, 16,
              -9,  1, 11,  0,  5  
           };   
   
    cout << "Matrix:\n";
    Print(matr);
        
    cout << "\nSum:\n";
    for(int i = 0; i < SZ; i++)           
        if(isNegative(matr[i]))
            cout << "  line #" << i + 1 << " = " << Sum(matr[i]) << endl;               
    
    cout << "\nSedlo:";
    Sedlo(matr);   
   
    return 0;         
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.