Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для Archital
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 29

Двумерный массив!НЕ могу решить:(

29.05.2010, 18:15. Показов 1592. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, нужно найти :а) сумму квадратов максимального и минимального элементов матрицы;
б)Количество нулевых элементов в каждом столбце. m=6;n=4.Зарание большое спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2010, 18:15
Ответы с готовыми решениями:

Задачки: Не могу решить
1) Дано натуральное число N. Определить, является ли это число палиндромом (перевертышем) с учетом всех цифр числа, например, 212, 3443,...

я БЛОНДИНКА не могу решить
3 Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть...

никак не могу решить рекурентное выражение
никак не могу решить рекурентное выражение Реализовать функцию, генерирующую все перестановки чисел от 0 до N-1.

18
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
29.05.2010, 21:14
Archital, Вот, но здесь нет учёта, что если минимальный элемент будет равен нулю, а умножение на ноль, даёт ноль, тоесть сумма квадратов MAX и MIN будет в этом результате нулём.
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
#include <iostream>
using namespace std;
 
int main()
{
  const int column = 6;
  const int row = 4;
 
  int array[column][row] = {0};
  int MAX = INT_MAX;
  int MIN = 0;
  int nullElement = 0;
  int result, s;
 
  cout<<"  Enter number \n";
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        cout<<"Enter number element array["<<i<<"]["<<j<<"] = ";
        cin>>array[i][j];
       }
    }
 
  // Определение максимального и минимального элементов массива
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        if(array[i][j] > MIN)
           MIN = array[i][j];
        if(array[i][j] < MAX)
           MAX = array[i][j];
        if(array[i][j] == 0)
           nullElement++;
       }
    }
 
  // Вывод макс. и мин. элементов и кол-во нулевых элементов
  cout<<" Minimal element = "<<MAX<<endl;
  cout<<" Minimal element = "<<MIN<<endl;
  cout<<" Null element = "<<nullElement<<endl;
 
  // Находим сумму квадратов макс. и мин. элементов
  result = (MAX * MIN) + (MAX * MIN); // или ( MAX + MIN) * 2
  cout<<"Summa quadro MAX and MIN element = "<<result<<endl;
 
  cin>>s;
 
  return 0;
}
//-------------------------------------------------------------------------
1
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
29.05.2010, 21:21
Maestro, сумма квадратов и квадрат суммы это разные вещи. Первое a^2 + b^2, а второе (a+ b)^2. Ну это так, к слову.
1
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
29.05.2010, 21:32
Inadequate, Спасибо.

Не по теме:

Чуть-чуть запутался и спутник улетел в пространство. :D



Заменить на эту конструкцию.
Code
1
result = (MAX * MAX) + (MIN * MIN);
0
 Аватар для Archital
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 29
29.05.2010, 22:23  [ТС]
Спасибо большое за помощь,но выдаёт ошибки.Что тут не так?А то я туповат в этом деле.
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 <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::gui1Click(TObject *Sender)
 
using namespace std;
int main()
{
  const int column = 6;
  const int row = 4;
 
  int array[column][row] = {0};
  int MAX = INT_MAX;
  int MIN = 0;
  int nullElement = 0;
  int result, s;
 
  cout<<"  Enter number \n";
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        cout<<"Enter number element array["<<i<<"]["<<j<<"] = ";
        cin>>array[i][j];
       }
    }
 
  // Определение максимального и минимального элементов массива
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        if(array[i][j] > MIN)
           MIN = array[i][j];
        if(array[i][j] < MAX)
           MAX = array[i][j];
        if(array[i][j] == 0)
           nullElement++;
       }
    }
 
  // Вывод макс. и мин. элементов и кол-во нулевых элементов
  cout<<" Minimal element = "<<MAX<<endl;
  cout<<" Minimal element = "<<MIN<<endl;
  cout<<" Null element = "<<nullElement<<endl;
 
  // Находим сумму квадратов макс. и мин. элементов
  result = (MAX * MAX) + (MIN * MIN);
  cout<<"Summa quadro MAX and MIN element = "<<result<<endl;
 
  cin>>s;
 
  return 0;
}
 
//---------------------------------------------------------------------------
0
633 / 376 / 7
Регистрация: 25.05.2010
Сообщений: 1,372
29.05.2010, 22:41
А это как? int MAX = INT_MAX;

И вообще, перед проверкой в циклах, что больше-меньше, надо назначить MIN=MAX=array[0][0]
Или использовать конструкцию, как здесь В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
29.05.2010, 23:16
Цитата Сообщение от ValeryB Посмотреть сообщение
А это как? int MAX = INT_MAX;
А эта константа, присваивает максимальное число для целого типа.

Цитата Сообщение от ValeryB Посмотреть сообщение
И вообще, перед проверкой в циклах, что больше-меньше, надо назначить MIN=MAX=array[0][0]
Можно и так сделать.

Добавлено через 1 минуту
Цитата Сообщение от Archital Посмотреть сообщение
но выдаёт ошибки.Что тут не так?А то я туповат в этом деле.
Создавайте программу не как Win32, а как Console, консольное приложение.
0
 Аватар для Archital
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 29
29.05.2010, 23:49  [ТС]
Console - это в пустое поле вводить?Если да,то пишет ошибку в строке "return 0;":
[C++ Error] Unit1.cpp(58): E2467 '_fastcall TForm1::TForm1(TComponent *)' cannot return a value
0
633 / 376 / 7
Регистрация: 25.05.2010
Сообщений: 1,372
30.05.2010, 00:27
Все не так, все не так ребята! (Высоцкий)
Где в условии, что элементы матрицы целочисленные и неотрицательные?
Зачем путаница в обозначении величин? Получается, что под MAX ищите минимальный элемент матрицы, а под MIN - максимальный.
А здесь оба названы минимальными:
C++
1
2
  cout<<" Minimal element = "<<MAX<<endl;
  cout<<" Minimal element = "<<MIN<<endl;
Добавлено через 15 минут
Основной кусок поиска должен такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  MIN=array[0][0]
  MAX=MIN
  // Определение максимального и минимального элементов массива
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        if(array[i][j] < MIN)
           MIN = array[i][j];
        if(array[i][j] > MAX)
           MAX = array[i][j];
        if(array[i][j] == 0)
           nullElement++;
       }
    }
Шапку поправьте сами.
1
 Аватар для Archital
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 29
30.05.2010, 02:02  [ТС]
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
#include<iostream.h>
using namespace std;
int main();
{
  const int column = 6;
  const int row = 4;
 
  int array[column][row] = {0};
  int MAX = INT_MAX;
  int MIN = 0;
  int nullElement = 0;
  int result, s;
 
  cout<<"  Enter number \n";
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        cout<<"Enter number element array["<<i<<"]["<<j<<"] = ";
        cin>>array[i][j];
       }
    }   MIN=array[0][0];
  MAX=MIN;
  // Определение максимального и минимального элементов массива
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        if(array[i][j] < MIN)
           MIN = array[i][j];
        if(array[i][j] > MAX)
           MAX = array[i][j];
        if(array[i][j] == 0)
           nullElement++;
       }
    }
          }
 
}
Код ошибок не выдает, производит изчисление, НО показывает пустой экран((так и должно быть?
0
633 / 376 / 7
Регистрация: 25.05.2010
Сообщений: 1,372
30.05.2010, 02:10
Ну так добавьте вывод нужных элементов или по дебаггеру гляньте.
В шапке поменяйте тип массива и результата с целочисленного на вещественный (float).
Значения MIN и MAX в шапке не назначайте.
0
 Аватар для Archital
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 29
30.05.2010, 02:19  [ТС]
Можно,пожалуйста,понятным языком,что-на-что поменять...
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
30.05.2010, 13:42
Цитата Сообщение от ValeryB Посмотреть сообщение
cout<<" Minimal element = "<<MAX<<endl;
Копирование подвело, конечно же maximum
Цитата Сообщение от ValeryB Посмотреть сообщение
Где в условии, что элементы матрицы целочисленные и неотрицательные?
В условии этого нет и потому я решил с самым простым типом, целым. Недумаю, что это так критично.
Цитата Сообщение от ValeryB Посмотреть сообщение
Зачем путаница в обозначении величин? Получается, что под MAX ищите минимальный элемент матрицы, а под MIN - максимальный.
Чуть-чуть запутался Писал сходу без особой проверки.

Цитата Сообщение от ValeryB Посмотреть сообщение
Значения MIN и MAX в шапке не назначайте.
Можно узнать почему нельзя? Разницы нет вроде бы, так что оба варианта имеют право на жизнь.

Цитата Сообщение от Archital Посмотреть сообщение
Код ошибок не выдает, производит изчисление, НО показывает пустой экран((так и должно быть?
У тебя вывода нет, вот и не выводит.


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
#include <iostream>
using namespace std;
 
int main()
{
  const int column = 6;
  const int row = 4;
 
  int array[column][row] = {0};
  int MAX = 0;
  int MIN = INT_MAX;
  int nullElement = 0;
  int result, s;
 
  cout<<"  Enter number \n";
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        cout<<"Enter number element array["<<i<<"]["<<j<<"] = ";
        cin>>array[i][j];
       }
    }
 
  // Определение максимального и минимального элементов массива
  for(int i = 0; i < column; i++){
     for(int j = 0; j < row; j++){
        if(array[i][j] > MIN)
           MIN = array[i][j];
        if(array[i][j] < MAX)
           MAX = array[i][j];
        if(array[i][j] == 0)
           nullElement++;
       }
    }
 
  // Вывод макс. и мин. элементов и кол-во нулевых элементов
  cout<<" Maximum element = "<<MAX<<endl;
  cout<<" Minimal element = "<<MIN<<endl;
  cout<<" Null element = "<<nullElement<<endl;
 
  // Находим сумму квадратов макс. и мин. элементов
  result = (MAX * MAX) + (MIN * MIN); 
  cout<<"Summa quadro MAX and MIN element = "<<result<<endl;
 
  cin>>s;
 
  return 0;
}
//-------------------------------------------------------------------------
0
 Аватар для Archital
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 29
30.05.2010, 14:20  [ТС]
Что такое consoleрежим?
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
30.05.2010, 17:02
Archital, Консольный режим, как окошко командной строки. когда ввести в Пуск - выполнить - cmd - Enter. Только это тип приложения.
0
633 / 376 / 7
Регистрация: 25.05.2010
Сообщений: 1,372
30.05.2010, 20:13
Цитата Сообщение от Maestro Посмотреть сообщение
В условии этого нет и потому я решил с самым простым типом, целым. Недумаю, что это так критично.
Как раз нет. Если у вас поезд в 14:05, а вы стараетесь приехать до 15:00, то рискуете не уехать ;-)
Не критично расширение диапазона, т.к. требуемый окажется внутри. А сужением рискуете оказаться вне искомого. Если из вводимых элементов MIN=-15.8, а MAX=-1.3, что вы получите по вашему алгоритму?
Можно узнать почему нельзя? Разницы нет вроде бы, так что оба варианта имеют право на жизнь.
Потому как один из минимаксов может оказаться вне диапазона значений элементов матрицы и никогда не изменится.
По вашему последнему алгоритму, если ни один из элементов матрицы не превысит INT_MAX, то MIN останется равен INT_MAX, а если все элементы больше нуля, то MAX останется равен 0. MAX<MIN здорово, да?

Цитата Сообщение от Archital Посмотреть сообщение
Можно,пожалуйста,понятным языком,что-на-что поменять...
Можно, но не нужно. Я преподаватель (причем не по ВТ, а по техническим дисциплинам) и предпочитаю учить, а не делать за вас вашу работу. А она настолько примитивна, что вызывает недоумение. Что это за программисты, которые не знакомы с самыми основами языка: типами данных и вводом-выводом? Вы собрались плыть в мир на дырявой лодке?
1
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
30.05.2010, 20:25
Не критично расширение диапазона, т.к. требуемый окажется внутри. А сужением рискуете оказаться вне искомого.
Всё, я понял. Честно говоря, подозревал что это задание диапазона выплывет боком, но не вдумался детально.

Всё правильно, лучше ограничиться теми которые есть в массиве. Прошу простить мою глупость.
0
30.05.2010, 20:43

Не по теме:

Цитата Сообщение от Maestro Посмотреть сообщение
Всё, я понял. Честно говоря, подозревал что это задание диапазона выплывет боком, но не вдумался детально.
Всё правильно, лучше ограничиться теми которые есть в массиве. Прошу простить мою глупость.
Нет проблем... Просто я смотрю на решения именно, как преподаватель. Привыкший быстро находить несоответствие, даже в случаях, когда предмет и не очень знаком. Специфика профессии ;-)
Особенно, когда надо было за 20-30 мин, выделяемых по учебному плануна проверку контрольных заочников (на 5-8 листах А4), обнаружить ошибки, да еще и написать качественную рецензию... Это приучило быстро находить узловые точки и оценивать правильность решений.

0
 Аватар для Archital
0 / 0 / 0
Регистрация: 29.05.2010
Сообщений: 29
06.06.2010, 16:09  [ТС]
Цитата Сообщение от ValeryB Посмотреть сообщение
Можно, но не нужно. Я преподаватель (причем не по ВТ, а по техническим дисциплинам) и предпочитаю учить, а не делать за вас вашу работу. А она настолько примитивна, что вызывает недоумение. Что это за программисты, которые не знакомы с самыми основами языка: типами данных и вводом-выводом? Вы собрались плыть в мир на дырявой лодке?
по данному вопросу в c++ я безпомощен, потому, что в силу весенних праздников лекций небыло, а роботу здать надо!
А за помощь огромное спасибо, программа работает в консольном режиме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2010, 16:09
Помогаю со студенческими работами здесь

подпрограммы! решить двумерный массив
Дана матрица Z порядка n. Найти произведение элементов побочной диагонали. решить двумерный массив с помощью подпрограмм (функции и...

Помогите решить последнюю задачу, на двумерный массив
http://img5.imageshost.ru/imgs/ef048fb2ebaa250400d62868648dad75/0ef96cef47a10866152121bab809caa2.jpg Помогите решить последнюю задачу...

Не могу через указатель на двумерный массив вернуть все значения в другой массив
Не могу через указатель на двумерный массив вернуть все значения в другой массив возвращается только первая строка, либо нули, либо...

не могу решить массив
Задан массив B . Найти в каждой строке наибольший элемент и увеличить его на минимальный элемент всей матрицы.

Паскаль двухмерный массив!!!не могу решить!
В данной действительной матрице размера 6x9 поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru