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

Наибольший и наименьшие значения в заштихованной части матрицы - C++

Восстановить пароль Регистрация
 
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 02:52     Наибольший и наименьшие значения в заштихованной части матрицы #1
Привет всем!
Прошу помощи в решении следующей задачи: Сформировать матрицу (любую произвольную). Найти наибольший и наименьший элемент заштрихованной части.
http://www.picamatic.com/show/2011/1...2_bigthumb.JPG
Вот код случайно заполняемой матрицы
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
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int main()
{
    srand(static_cast<unsigned>(time(0)));
    int N;
    cout << "Vvedite razmernost: ";
    cin >> N;
    int** Arr;
    Arr=new int*[N];
    for(int i=0; i<N; ++i)
        Arr[i]=new int[N];
    for(int i=0; i<N; ++i)
    {
       for(int j=0; j<N; ++j)
       {
           Arr[i][j]=(1+rand()%100)-(1+rand()%100);
       }
    }
  
}
Вобще ни разу еще не приходилось чтото делать с заштрихованной частью матрицы.... Помогите пожалуйста с этой частью задачи, кому не сложно.

Добавлено через 1 час 51 минуту
Есть у когонить соображения?

Добавлено через 9 часов 27 минут
Если не мою задачу, то может покажет ктонибудь пример с другой заштриховкой. Но именно на с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.12.2011, 02:58     Наибольший и наименьшие значения в заштихованной части матрицы #2
Muska, элементы главной диагонали имеют индексы [i][i], элементы побочной диагонали [i][n-1-i]
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 03:12  [ТС]     Наибольший и наименьшие значения в заштихованной части матрицы #3
Хорошо, а как начать собственно выполнение это части задачи? Первые пару строк если можно... не могу сообразить как начать это дело ....
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.12.2011, 03:16     Наибольший и наименьшие значения в заштихованной части матрицы #4
цикл прохода по элементам матрицы, расположеных на главной диагонали и ниже неё
C++
1
2
3
4
5
6
7
for (int i = 0; i < N; ++i)
{
    for (int j = 0; j <= i; ++j)
    {
         
    }
}
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 03:57  [ТС]     Наибольший и наименьшие значения в заштихованной части матрицы #5
А собственно саму эту заштрихованную часть можно выделить какимто другим цветом при выводе уже в командной строке? Как например, смотрю подобные задачи на паскале.

Добавлено через 34 минуты
Подскажите
dev c++ пишет expected primary-expression before '||' token
на этой строчке кода:
C++
1
if ((j<=i) && (j<=m-1-i)) || ((j>=m-1-i) && (j>=i));
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
15.12.2011, 04:16     Наибольший и наименьшие значения в заштихованной части матрицы #6
Цитата Сообщение от Muska Посмотреть сообщение
if ((j<=i) && (j<=m-1-i)) || ((j>=m-1-i) && (j>=i));
у вас эта строчка на самом деле точкой с запятой заканчивается?
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 04:19  [ТС]     Наибольший и наименьшие значения в заштихованной части матрицы #7
Нет, хз как туда попала при внесении сюда кода хД
Вот:
C++
1
if ((j<=i) && (j<=m-1-i)) || ((j>=m-1-i) && (j>=i))
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
15.12.2011, 04:19     Наибольший и наименьшие значения в заштихованной части матрицы #8
у вас ошибка со скобками
C++
1
if (((j<=i) && (j<=m-1-i)) || ((j>=m-1-i) && (j>=i))){}
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 04:42  [ТС]     Наибольший и наименьшие значения в заштихованной части матрицы #9
Блин чтото тут нето.. и видимо в цикле по поиску макс значения в заштрихованных частях, переделал генератор матрицы на более адекватный )
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <conio.h>
 
using namespace std;
#define m 6  
#define n 6
 
int main() 
{
       int min;
       int max;
       int Y[m][n];
       int MAX = 100;
       time_t t;
       srand((unsigned) time(NULL));
       for (int i=0; i < m; i++) {
         for (int j=0; j < n; j++) {
             Y[i][j]= rand() % MAX;
                 printf("  %d",Y[i][j]);}
                   printf("\n");}
                   getch();
       for (int i = 0; i < m; ++i)
{
    for (int j = 0; j <= i; ++j)
    {
         if (((j<=i) && (j<=m-1-i)) || ((j>=m-1-i) && (j>=i)))
            if (Y[i][j]>max)
               max = Y[i][j];
               printf("  %d",max);
         
         
    }
    getch();
} 
}
Компилится и работает без ошибок, но числа какието печальные выводит....
Может сам вывод значений неправельно написан? А сама функция правельно работает?
Поправьте ктонить вывод максимального, с минимальным думаю уж разберусь на основе максимального.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2011, 05:23     Наибольший и наименьшие значения в заштихованной части матрицы #10
Muska, проверяйте:
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 <ctime>
#include <cstdlib>
#include <conio.h>
 
using namespace std;
#define m 6  
#define n 6
 
int main() 
{
       int min;
       int max;
       int Y[m][n];
       int MAX = 100;
       time_t t;
       srand((unsigned) time(NULL));
       for (int i=0; i < m; i++)
       {
           for (int j=0; j < n; j++) 
           {            
               Y[i][j]= rand() % MAX;                
               printf("  %d",Y[i][j]);
           }
           printf("\n");
       }
       max=Y[0][0];
       getch();
       for (int i = 0; i < m; ++i)
       {
           for (int j = 0; j <n; ++j)
           {
               if ((i<=m/2 && (j<=i || j>=n-1-i)) || (i>m/2 && (j>=i || j<=n-1-i)))
                   if (Y[i][j]>max)
                       max = Y[i][j];                  
           }           
       } 
       printf("  %d",max);
       getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2011, 05:36     Наибольший и наименьшие значения в заштихованной части матрицы
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Muska
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 11
15.12.2011, 05:36  [ТС]     Наибольший и наименьшие значения в заштихованной части матрицы #11
Работает спасибо, буду теперь пытатся делать для минимального

Добавлено через 9 минут
Все сделал, большое спасибо всем кто участвовал в наставлении меня=).
Yandex
Объявления
15.12.2011, 05:36     Наибольший и наименьшие значения в заштихованной части матрицы
Ответ Создать тему
Опции темы

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