Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/37: Рейтинг темы: голосов - 37, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 46
1

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

11.06.2014, 22:30. Показов 7248. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
пожалуйста пожалуйста листинг оставил на компьютере в колледже поэтому кинуть свои наработки не могу

Условие:"введенному с клавиатуры одномерном массиве найти наибольший среди отрицательных и наименьший среди положительных элементов массива"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2014, 22:30
Ответы с готовыми решениями:

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

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

Найти наибольший среди элементов кратных 6 и наименьший среди нечетных элементов массива
помогите с задачкой пожалуйста Задан массив Х(N). Найти наибольший среди элементов кратных 6 и...

В массиве из 20 чисел найти наименьший среди отрицательных элементов
помогите решить задачу, в массиве из 20 чисел найти наименьший среди отрицательных элементов

20
31 / 31 / 19
Регистрация: 03.05.2011
Сообщений: 84
11.06.2014, 23:26 2
Лучший ответ Сообщение было отмечено awaylastdays как решение

Решение

C++
1
2
3
4
5
6
7
8
9
int a[n];
... - вводим массив из n элементов
int Min = 1000000000, Max = -1000000000;
for (int i = 0; i < n; i++)
    if (a[i] < 0)
         Max = max(Max, a[i]);
    else if (a[i] > 0)
         Min = min(Min, a[i]);
printf("%d %d\n", Max, Min);
2
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 29
12.06.2014, 15:42 3
tehnar5, не работает код(
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 15:52 4
Цитата Сообщение от tehnar5 Посмотреть сообщение
int Min = 1000000000, Max = -1000000000;
Ничего себе изврат. А более гуманными способами?.. Давно такого не видела.

Добавлено через 44 секунды
Цитата Сообщение от AndrewLoL Посмотреть сообщение
tehnar5, не работает код(
А что не работает? Дайте угадаю - int main() не написали?))
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 29
12.06.2014, 15:55 5
Тамика, не работает int a[n];
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 15:57 6
Цитата Сообщение от AndrewLoL Посмотреть сообщение
Тамика, не работает int a[n];

Ладно.
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
#include <iostream>
 
 
int main()
{
    int max = INT_MIN;
    int min = INT_MAX;
 
    std::cout << "Enter count of elements : ";
    int n;
    std::cin >> n;
    int *mas = new int[n];
    for (int i = 0; i < n; ++i)
        std::cin >> mas[i];
 
    for (int i = 0; i < n; ++i)
    {
        if (mas[i] < 0) 
            if (mas[i] > max)  max = mas[i];
 
        if (mas[i] > 0) 
            if (mas[i] < min)  min = mas[i];
    }
 
    std::cout << "\nMin = " << min;
    std::cout << "\nMax = " << max;
    system("pause>>null");
}
0
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 25
12.06.2014, 16:30 7
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
#include <iostream>
using namespace std;
int main()
{
    const int n = 60;
    int arr[n];
    for (int i = 0; i < n; i++)
        arr[i] = rand() % 60 - 30;
    int max_neg=0, min_pos=0;
    for (int i = 0;; i++){
        if (arr[i] < 0){
            max_neg = arr[i];
            break;
        }
    }
    for (int i = 0;; i++){
        if (arr[i]>0){
            min_pos = arr[i];
            break;
        }
    }
    for (int i = 0; i < n; i++)
    {
        if (arr[i] < 0){
            if (arr[i] > max_neg)
                max_neg = arr[i];
        }
        else{
            if (arr[i]>0){
                if (arr[i] < min_pos)
                    min_pos = arr[i];
            }
        }
    }
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
    if (min_pos == 0)
        cout << "\nПоложительных чисел нет";
    else
        cout << "\nmax_neg=" << max_neg;
    if (max_neg == 0)
        cout << "\nОтрицательных чисел нет";
    else
        cout<<"\nmin_pos=" << min_pos << endl;
    system("pause");
}
Опередили
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 29
12.06.2014, 16:53 8
Тамика, не правильно работает программа, не то выводит что нужно.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 17:04 9
Цитата Сообщение от AndrewLoL Посмотреть сообщение
Тамика, не правильно работает программа, не то выводит что нужно.
Странно, у меня всё правильно выводит. А что нужно?
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 29
12.06.2014, 17:09 10
Тамика, должно быть так, ты вводишь с клавиатуры допустим 4 числа. Например (2 -3 9 -1) и одно должно показать самое большое среди отрицательных то есть -1 и самое маленькое среди положительных то есть 2.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 17:14 11
Цитата Сообщение от AndrewLoL Посмотреть сообщение
Тамика, должно быть так, ты вводишь с клавиатуры допустим 4 числа. Например (2 -3 9 -1) и одно должно показать самое большое среди отрицательных то есть -1 и самое маленькое среди положительных то есть 2.
У меня так и выводит.
Уважаемый, а Вы прочитали сообщение от программы? Если Вы сразу пихаете массив программе, то конечно выведет не то, что нужно.
Сначала пишете количество элементов. Затем ентер... Запомнили? А потом вводим массив.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 17:17 12
Бум!
В одномерном массиве найти наибольший среди отрицательных и наименьший среди положительных элементов
0
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 25
12.06.2014, 17:19 13
Тамика, возможно, автор ввел массив, в котором нет положительных или отрицательных элементов, и когда программа вывела страшное число, равное максимальному нижнему или верхнему значению типа Int, то испугался и подумал, что она работает неправильно.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 17:20 14
Цитата Сообщение от Exzotick Посмотреть сообщение
Тамика, возможно, автор ввел массив, в котором нет положительных или отрицательных элементов, и когда программа вывела страшное число, равное максимальному нижнему или верхнему значению типа Int, то испугался и подумал, что она работает неправильно.
Может и такое произойти.
0
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 25
12.06.2014, 17:23 15
awaylastdays, можете попробовать мой код. Там предусмотрен случай отсутствия в массиве элементов одного из знаков.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 17:32 16
Лучший ответ Сообщение было отмечено awaylastdays как решение

Решение

Цитата Сообщение от Exzotick Посмотреть сообщение
awaylastdays, можете попробовать мой код. Там предусмотрен случай отсутствия в массиве элементов одного из знаков.
Уж ради Теслы.
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
#include <iostream>
  
int main()
{
    int max = INT_MIN;
    int min = INT_MAX;
 
    std::cout << "Enter count of elements : ";
    int n;
    std::cin >> n;
    int *mas = new int[n];
    for (int i = 0; i < n; ++i)
        std::cin >> mas[i];
 
    bool fl_min = false;
    bool fl_max = false;
 
    for (int i = 0; i < n; ++i)
    {
        if (mas[i] < 0)
            if (mas[i] > max)  
                {
                    max = mas[i];
                    fl_max = true;
                }
 
        if (mas[i] > 0) 
            if (mas[i] < min)  
            {
                min = mas[i];
                fl_min = true;
            }
    }
 
    if (fl_min)
        std::cout << "\nMin = " << min;
    else 
        std::cout << "\nNo positive elements";
 
    if (fl_max)
        std::cout << "\nMax = " << max;
    else
        std::cout << "\nNo negative elements!";
 
    system("pause>>null");
}
Да и не вижу в Вашем коде смысл проверки. Элементы же определены заранее. Зачем проверять?
1
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 25
12.06.2014, 17:40 17
Тамика, вы имеете ввиду, что заполнение производится случайными числами из диапазона, который заранее задан? Так это я просто чтоб написать быстрей. А автор значения ведь с клавиатуры будет вводить.
А что у вас за IDE? Вроде Visual Studio, но интерфейс какой-то другой.
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 29
12.06.2014, 17:43 18
Тамика, спасибо начало работать я с компа зайду скину что у меня писало)
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
12.06.2014, 17:44 19
Цитата Сообщение от Exzotick Посмотреть сообщение
Тамика, вы имеете ввиду, что заполнение производится случайными числами из диапазона, который заранее задан? Так это я просто чтоб написать быстрей. А автор значения ведь с клавиатуры будет вводить.
Именно об этом и речь.
Хоть бы srand(...) уже б добавили... Одно и то же ж.

Добавлено через 29 секунд
Цитата Сообщение от AndrewLoL Посмотреть сообщение
Тамика, спасибо начало работать я с компа зайду скину что у меня писало)
Хорошо.
0
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 25
12.06.2014, 17:45 20
Я предполагал, что автор все равно переделает код для ввода с клавиатуры, поэтому не видел в этом смысла.
0
12.06.2014, 17:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2014, 17:45
Помогаю со студенческими работами здесь

В массиве поменять местами максимальное среди отрицательных элементов и минимальное среди положительных
Две задачи. 1. Массив из 10 элементов. Надо поменять местами максимальное среди отрицательных и...

В массиве R(k) найти минимальный элемент среди положительных и максимальный среди отрицательных
В массиве R(k) найти минимальный элемент среди положительных и максимальный среди отрицательных

В массиве R(k) найти минимальный элемент среди положительных и максимальный среди отрицательных
В массиве R(k) найти минимальный элемент среди положительных и максимальный среди отрицательных....

В одномерном массиве найти среднее значение среди отрицательных элементов
В одномерном массиве A из n элементов найти среднее значение среди отрицательных элементов и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru