Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5

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

06.09.2018, 20:37. Показов 5175. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с заданиями)
Задание 1: Напишите программу, которая создает двухмерный массив и заполняет его по следующему принципу: пользователь вводит число (например, 3) первый элемент массива принимает значение этого числа, последующий элемент массива принимает значение этого числа умноженного на 2 (т.е. 6 для нашего примера), третий элемент массива предыдущий элемент умноженный на 2 (т.е. 6*2=12 для нашего примера). Созданный массив вывести на экран.
Задание 2: Создайте двухмерный массив. Заполните его случайными числами и покажите на экран. Найдите самый большой отрицательный элемент и самый маленький положительный – выведите их на экран
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.09.2018, 20:37
Ответы с готовыми решениями:

В массиве X найти самый большой элемент и вывести его и его номер на экран, в массиве Y - самый маленький
С помощью датчика случайных чисел сформировать два массива X и Y размерностью 100 и 200 чисел в диапазоне от 0 до 1 и от 0 до 100...

Текстовый файл. Найти самый большой и самый маленький компонент файла
Дан файл Ф,его компоненты - целые числа. Найти самый большой и самый маленький компонент файла

Найти среднее арифметическое компонент массива, удалив самый большой и самый маленький элементы
Найти среднее арифметическое компонент массива , убрав самый большой и самый маленький элементы

14
06.09.2018, 20:50

Не по теме:

А волшебное слово? :D

0
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5
06.09.2018, 20:57  [ТС]
Добавлено через 18 секунд
пожалуйста пожалуйста))
а вообще там есть волшебное слово)
0
06.09.2018, 21:06

Не по теме:

Цитата Сообщение от Алина Алина Посмотреть сообщение
а вообще там есть волшебное слово)
Да где? Не вижу! :D

Кликните здесь для просмотра всего текста

0
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5
06.09.2018, 21:11  [ТС]
нифига себе благодарность))
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
06.09.2018, 21:27
Цитата Сообщение от Алина Алина Посмотреть сообщение
Помогите пожалуйста с заданиями)
Я правильно понимаю, что имеется ввиду "сделайте за меня задания"?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
06.09.2018, 21:28
Лучший ответ Сообщение было отмечено Алина Алина как решение

Решение

Алина Алина, В вашем стартовом посте есть пара мелких нарушение правил.
4.4 Один вопрос - одна тема
4.7 Покажите хоть какие-то ваши собственные усилия.
С 4.4 пусть разбираются модераторы. А я попытаюсь набросать примерный псевдокод
C++
1
2
3
4
5
6
7
int a[3][4], k;
cin >> k;
for(int i=0; i<3; i++)
  for(int j=0; j<4; j++) {
    a[i][j] = k;
    k *= 2;
  }
1
06.09.2018, 21:36

Не по теме:

Цитата Сообщение от Алина Алина Посмотреть сообщение
нифига себе благодарность
На пельмешки.

0
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5
06.09.2018, 22:52  [ТС]
Нужна помощь)
Создайте двухмерный массив. Заполните его случайными числами и покажите на экран. Найдите самый большой отрицательный элемент и самый маленький положительный – выведите их на экран.
Сделала массив, поставила на вывод, а вот как найти отриц и положит элемент - не могу понять.

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
#include <iostream>
#include <ctime>
using namespace std;
 
void main()
{
    int a[3][4];
 
    srand(time(0));
    for (int i = 0; i<3; i++)
        for (int j = 0; j<4; j++)
        {
            a[i][j] = rand()%10;
        }
    for (int i = 0; i < 3; i++)   //вывод массива
    {
        for (int j = 0; j < 4; j++)
        {
            cout << a[i][j] << endl;
        }
    }
    cout << endl;
 
    system("pause");
};
0
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5
06.09.2018, 22:55  [ТС]
С первым я уже справилась, а вот на втором застряла.
не могу сообразить как сделать положит и отриц элементы.
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
#include <iostream>
#include <ctime>
using namespace std;
 
void main()
{
    int a[3][4];
 
    srand(time(0));
    for (int i = 0; i<3; i++)
        for (int j = 0; j<4; j++)
        {
            a[i][j] = rand()%10;
        }
    for (int i = 0; i < 3; i++)   //вывод массива
    {
        for (int j = 0; j < 4; j++)
        {
            cout << a[i][j] << endl;
        }
    }
    cout << endl;
 
    system("pause");
};
0
Злостный нарушитель
 Аватар для Verevkin
10299 / 5722 / 1268
Регистрация: 12.03.2015
Сообщений: 26,495
06.09.2018, 23:03
Цитата Сообщение от Алина Алина Посмотреть сообщение
не могу сообразить как сделать положит и отриц элементы.
C++
1
a[i][j] = 5 - rand() % 10; // -4 ... +5
0
 Аватар для mvngr
225 / 189 / 98
Регистрация: 15.04.2018
Сообщений: 718
07.09.2018, 00:32
p.s. Не тестировал, может не работать

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
#include <iostream>
#include <ctime>
using namespace std;
 
void main()
{
    int a[3][4];
    int bigBeforeZero = 1, smallAfterZero = 1000000;
 
    srand(time(0));
    for (int i = 0; i<3; i++)
        for (int j = 0; j<4; j++)
        {
            a[i][j] = rand()%10;
            if(a[i][j] < 0 && a[i][j] < bigBeforeZero)
                bigBeforeZero = a[i][j];
            if(a[i][j] > 0 && a[i][j] < smallAfterZero)
                smallAfterZero = a[i][j];
        }
    for (int i = 0; i < 3; i++)   //вывод массива
    {
        for (int j = 0; j < 4; j++)
        {
            cout << a[i][j] << ' ';
        }
        cout << endl;
    }
    cout << bigBeforeZero << smallAfterZero << endl;
 
    system("pause");
};
0
33 / 22 / 12
Регистрация: 13.09.2017
Сообщений: 74
07.09.2018, 00:55
Лучший ответ Сообщение было отмечено Алина Алина как решение

Решение

Первый курс университета ? Обычно преподы там любят проверять частности, поэтому нужно для начала определить: а существует ли положительные или отрицательные элементы вообще ? Массив может быть заполнен например нулями, а ноль как известно - не положительное и не отрицательное число.

Так как ноль не является ни положительным ни отрицательным, то его можно использовать в качестве значения для начальной инициализации наших переменных:

C++
1
2
3
4
5
6
7
8
9
10
11
12
int minPlus  = 0; // минимальный положительный
int maxMinus = 0; // максимальный отрицательный
 
// Определяем, существуют ли положительные или отрицательные элементы в массиве
    for(int i = 0; i < 3; i++)
        for(int j = 0; j < 4; j++)
        {
            if(a[i][j] > 0)
                minPlus = a[i][j];
            if(a[i][j] < 0)
                maxMinus = a[i][j];
        }
Теперь можно находить нужные значения, дополнительно проверяя условие переменных minPlus и maxMinus на то, что они не равны нулю (т.е отрицательные или положительные значения вообще существуют):

C++
1
2
3
4
5
6
7
8
9
// Ищем нужные нам значения, если они конечно существуют
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 4; j++)
            {
                if(a[i][j] < minPlus && a[i][j] > 0 && minPlus != 0)
                    minPlus = a[i][j];
                if(a[i][j] > maxMinus && a[i][j] < 0 && maxMinus != 0)
                    maxMinus = a[i][j];
            }
Теперь выведем эти значения на экран, предварительно проверив, что они существуют (т.е их значение не ноль):

C++
1
2
3
4
5
6
7
8
9
10
11
 if(minPlus != 0)
        cout << endl << " Минимальный положительный элемент: " << minPlus << endl;
    else
        cout << endl << " Положительных элементов не существует в массиве!" << endl;
 
 
 
    if(maxMinus != 0)
        cout << endl << " Максимальный отрицательный элемент: " << maxMinus << endl;
    else
        cout << endl << " Отрицательных элемент не существует в массиве!" << endl;
Решение самое тривиальное. Можно было подумать и написать код и эффективнее, но обычно на начальных этапах изучения С++, преподаватели на это не обращают внимание. Главное что вы освоили концепцию массивов и синтаксис работы с ними.

Добавлено через 15 минут
Хотя проверки во втором цикле

C++
1
2
minPlus != 0
maxMinus != 0
Не нужны, не знаю, зачем я их добавил) Еще касательно вашего кода:

C++
1
a[i][j] = rand()%10;
Здесь массив будет заполняться только числами от 0 до 9. Отрицательных не будет вообще. Лучше заменить например на:

C++
1
a[i][j] = rand()%20 - 10+1;
Тогда будут числа от -10 до 10
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.09.2018, 06:51
Цитата Сообщение от Алина Алина Посмотреть сообщение
на втором застряла
как вариант:
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
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, m;
    cout <<"n="; cin >>n;
    cout <<"m="; cin >>m;
    
      double **a = new double*[n], min=0.0, max=0.0; 
    for (int i = 0; i < n; i++)
      a[i]=new double[m];
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    {
    a[i][j]=0.1*(rand()%199 - 99);  
    cout <<setw(4)<<a[i][j]<<" ";
    }
    cout << endl;
    }   
    
    for (int i = 0; i < n; i++) 
    for (int j = 0; j < m; j++)
        if (a[i][j] < 0) {max = a[i][j]; break;}
    
    for (int i = 0; i < n; i++) 
    for (int j = 0; j < m; j++)
        if (a[i][j] > 0) {min = a[i][j]; break;}
        
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    {   
    if (a[i][j] < 0 && a[i][j] > max) max = a[i][j];
    if (a[i][j] > 0 && a[i][j] < min) min = a[i][j];    
    }   
    } 
    
    cout <<"max_negative="<<max<<"\nmin_positive="<<min<<"\n";    
        
    for (int i = 0; i < n; i++)
    delete [] a[i];
    delete [] a;
 
system("pause");
return 0;
}
но нужно будет ещё добавить проверку на наличие в массиве положительных и отрицательных
0
07.09.2018, 06:52
 Комментарий модератора 
Алина Алина, пожалуйста, прочитайте правила форума.
Особое внимание обратите на следующие пункты:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2018, 06:52
Помогаю со студенческими работами здесь

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

Как переставить местами самый маленький и самый большой элементы массива?
1. Переставить местами маленький и самый большой элементы массива

Массив: Найти самый большой отрицательный элемент массива
Дан одномерный массив а, где и=0,1,..., 25, для которого нужно: 1) Найти элементы, индекс которых кратный 2 2) Найти самый большой...

Определить самый большой и самый маленький элементы сформированного вектора
Сформировать и напечатать вектор с m ( m &lt;= 50 ) трехзначных случайных чисел. В каждом номере все три цифры должны быть разными. Определить...

Переписать данные из файла в новый файл, отбросив самый большой и самый маленький результат
Файл содержит данные о результатах 25 экспериментальных измерений. Переписать их в новый файл, отбросив самый большой и самый маленький...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru