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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Матрицы, Матрицы 
:(
    Опции темы
Павлуха
Дата 27.5.2006, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите, пжалста.............как пройтись по главной и побочной диагонали квадратной матрицы, найти среди этих элементов наибольшее значение

И ещё как найти пересечение главной и побочной диагонали (матрица, естественно, 3х3, 5х5, 7х7, 9х9 и т.д чтоб был элемент на пересечении smile )
                                                                                 smile 
буду очень благодарен......... 
PM MAIL   Вверх
Dray
Дата 28.5.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

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



Код
#include <iostream>
using namespace std;

#define N 5

void main (void)
{
    int matr [N][N];
    int i, j;
    //Заполняем матрицу
    for (i=0; i<N; i++)
    {
        for (j=0; j<N; j++)
        {
            matr[i][j]=rand ()%10;
            cout << matr[i][j] << " ";
        };
        cout << endl;
    };
    cout << endl;
    //Ищем максимальный элемент на главной диагонале
    int max=matr[0][0];
    for (i=0, j=0; i<N; i++, j++)
    {
        if (matr[i][j]>max)
        {
            max=matr[i][j];
        };
    };
    cout << max << endl;
    //На побочной
    max=matr[0][N-1];
    for (i=0, j=N-1; i<N; i++, j--)
    {
        if (matr[i][j]>max)
        {
            max=matr[i][j];
        };
    };
    cout << max << endl;
};


Цитата(Павлуха @  27.5.2006,  22:59 Найти цитируемый пост)
И ещё как найти пересечение главной и побочной диагонали

Ну это совсем детский сад. 


--------------------
忍者

user posted image
PM MAIL   Вверх
Павлуха
Дата 28.5.2006, 03:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 smile ну дык, я ещё ребёнок в этих делах!!!! smile  
PM MAIL   Вверх
Павлуха
Дата 28.5.2006, 04:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



дык как? smile  
PM MAIL   Вверх
MAKCim
Дата 28.5.2006, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата

дык как?

а вот так  smile 
Код

size_t ceoss(size_t size)
    {return (size-3)/2+1;}
 
size - размерность (3,5,7,9,...) 

Это сообщение отредактировал(а) MAKCim - 28.5.2006, 09:11


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
AlanG
Дата 28.5.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.5.2006
Где: РашЫн ФидирейшЫн

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



Можно даже проверить находится ли на пересечении максимальное число, вот только я не помню, что будет если разделить нечетный int на четное число, т.е. как произойдет округление я не знаю, если к примеру int = 5 разделить на 2 и в итоге получится 2, то задача корректная smile , если нет то извиняюсь ошибочная smile .
Код

#include <iostream>
using namespace std;

#define N 5

void main (void)
{
    int matr [N][N];
    int i, j;
    //Заполняем матрицу
    for (i=0; i<N; i++)
    {
        for (j=0; j<N; j++)
        {
            matr[i][j]=rand ()%10;
            cout << matr[i][j] << " ";
           
        };
        cout << endl;
    };
    cout << endl;
    //Ищем максимальный элемент на главной диагонале
    int max=matr[0][0];
    int maxS;
    bool go=false;
    for (i=0, j=0; i<N; i++, j++)
    {
        if (matr[i][j]>max)
        {
            max=matr[i][j]; 
            if(i==N/2) { maxS=max;//На пересечении найден максимальный эллемент}
        };
    };
    if(max>maxS){go=true; //Найдено большее число не на пересечении}
   if(go){ //Если максимальное число не на пересечении
    cout << max << endl;
   } else {cout << maxS << endl; //Если макимальное число найдено на пересечении }
    
    //На побочной
    max=matr[0][N-1];
    for (i=0, j=N-1; i<N; i++, j--)
    {
        if (matr[i][j]>max)
        {
            max=matr[i][j];
        };
    };
    cout << max << endl;
};
  

Это сообщение отредактировал(а) AlanG - 28.5.2006, 16:01
PM MAIL   Вверх
Dray
Дата 28.5.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

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



Там не происходит округления, там просто отбрасывается дробная часть.
2.3=2
2.5=2
2.7=2 


--------------------
忍者

user posted image
PM MAIL   Вверх
AlanG
Дата 29.5.2006, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.5.2006
Где: РашЫн ФидирейшЫн

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



Цитата

Там не происходит округления, там просто отбрасывается дробная часть.

Тфу блин, ну вобщем я это хотел сказать smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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