Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Pintelka
0 / 0 / 0
Регистрация: 24.10.2012
Сообщений: 17
#1

Найти минимальный отрицательный элемент - C++

24.10.2012, 12:47. Просмотров 1384. Ответов 1
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста!
Дан одномерный массив, состоящий из N целочисленных элементов.
5.1. Ввести массив с клавиатуры.
5.2. Найти максимальный отрицательный элемент.
5.3. Вычислить сумму отрицательных элементов массива.
5.4. Вывести положительные элементы на экран.
5.5. Отсортировать массив методом вставки и вывести отсортированный массив на экран.
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <windows.h>

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
const int N=5;
int x[N]; //заводим массив
int i,j,maxmin,s,k;
//1.1. Ввести массив с клавиатуры.
for(int i=0;i<N;i++)
{
cout<<"Введите "<<i+1<<" элемент";
cin>>x[i];
}
//1.2. Найти максимальный отрицательный элемент.
maxmin=0;
for(i=0;i<N;i++)
if (x[i]<0)
{
maxmin=x[i];
}

if (maxmin==0) cout<<" все положительные ";
else
{
for(i=0;i<N;i++)
if (x[i]<0)
if (x[i]>maxmin)
maxmin=x[i];
}
//1.4. Вывести положительные элементы на экран.
cout<<"элемент:\t";
for(i=0;i<N;i++)
if (x[i]>0)
cout<<x[i]<<" ";
cout<<endl;
//1.5. Отсортировать массив методом вставки и вывести отсортированный массив на экран.
for (i = 1;i<N;i++)
{
k = x[i];
j = i - 1;
while (j >= 0 && x[j] > k)
{
x[j + 1] = x[j];
j--;
x[j + 1] = k;
}
}
cout<<"отсортировка x:\t";
for(i=0;i<N;i++)
cout<<x[i]<<" ";
}
Выводит два элемента и не отрицательных! Как можно переделать? Подскажите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 12:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти минимальный отрицательный элемент (C++):

Найти минимальный отрицательный элемент квадратной матрицы - C++
Дана матрица размерностью n*n Среди элементов определить минимальный отрицательный элемент и его координаты. Если таких элементов нет на...

В двухмерном массиве найти минимальный, отрицательный элемент массива - C++
В двухмерном массиве найти минимальный, отрицательный элемент массива. Если его нет, то вывести сообщение об этом.Решить в с++ с помощью...

Найти максимальный отрицательный и минимальный положительный элемент и поменять их местами - C++
1) Дан массив из 20 чисел найти максимальный отрицательный и минимальный положительный элемент, поменять их местами. #include...

В массиве найти минимальный положительный и максимально отрицательный элемент и вычисляет их следующее значени - C++
Очень-очень-очень срочно надо сделать такую прогу, а я не совсем понимаю как её делать. Помогите, пожалуйста. Если можно, то объясните...

Массивы. Заполнить случайными числами. Найти минимальный отрицательный элемент. Вычислить среднеарифмитическое положительных - C++
С помощью динамического массива составить прогу 1.Заполнить массив массив случайными числами. 2.Найти минимальный отрицательный...

Массивы: поменять местами минимальный по модулю элемент и максимальный отрицательный элемент - C++
Пусть А одномерный массив N-целых чисел. Ввести его случайным образом. а) поменять местами минимальный по модулю элемент и максимальный...

1
John Prick
805 / 738 / 146
Регистрация: 27.07.2012
Сообщений: 2,110
Завершенные тесты: 3
24.10.2012, 17:04 #2
C++
1
2
3
4
5
6
7
//1.2. Найти максимальный отрицательный элемент.
 maxmin=0;
 for(i=0;i<N;i++)
 if (x[i]<0)
 {
 maxmin=x[i];
 }
Ну кто так ищет?
C++
1
2
3
4
5
6
maxmin=0;
for(i=0;i<N;i++)
if ((x[i]<0) && (x[i] > maxmin))
{
     maxmin = x[i];
}
Добавлено через 2 часа 35 минут
Ну и по традиции прилепим stl
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
/*
Дан одномерный массив, состоящий из N целочисленных элементов.
 5.1. Ввести массив с клавиатуры.
 5.2. Найти максимальный отрицательный элемент.
 5.3. Вычислить сумму отрицательных элементов массива.
 5.4. Вывести положительные элементы на экран.
 5.5. Отсортировать массив методом вставки и вывести отсортированный массив на экран.
*/
 
#include <iostream>
#include <algorithm>
#include <functional>
#include <numeric>
 
class THandSetArray
{
private:
    int _i;
public:
    THandSetArray(void) : _i(1) {}
    int operator()(void)
    {
        std::cout << _i << ": ";
        int X = 0;
        std::cin >> X;
        ++_i;
        return X;
    }
};
 
int main(void)
{
    setlocale(0, "rus");
 
    const int N = 5;
    int A[N];
    // 5.1. Ввести массив с клавиатуры.
    std::cout << "Введите " << N << " элементов массива:" <<'\n';
    std::generate(A, A + N, THandSetArray());
    // 5.2. Найти максимальный отрицательный элемент.
    int * M = std::partition(A, A + N, std::bind2nd(std::less<int>(), 0));
    std::cout << "Максимальный отрицательный элемент: " << *(std::max_element(A, M)) << '\n';
    // 5.3. Вычислить сумму отрицательных элементов массива.
    std::cout << "Сумма отрицательных элементов: " << std::accumulate(A, M, 0) << '\n';
    // 5.4. Вывести положительные элементы на экран.
    std::cout << "Положительные элементы: ";
    std::copy(M, A + N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    // 5.5. Отсортировать массив методом вставки и вывести отсортированный массив на экран.
    std::sort(A, A + N);
    std::cout << "Отсортированный массив: ";
    std::copy(A, A + N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    system("pause");
}
Добавлено через 1 минуту
Только сортировка не тем методом производится.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 17:04
Привет! Вот еще темы с ответами:

Минимальный элемент одномерного массива A заменить на третий отрицательный элемент - C++
Минимальный элемент одномерного массива A заменить на третий отрицательный элемент. Третий отрицательный искать от минимального элемента.

Поменять местами минимальный элемент и первый отрицательный элемент массива целых чисел - C++
Поменять местами минимальный элемент и первый отрицательный эле-мент массива целых чисел.Необходимо использовать указатели и динамическйи...

Массив: Найти первый отрицательный элемент в каждой строке и последний четный элемент в каждом столбце. - C++
Дан двумерный массив двухбайтовых знаковых целочисленных элементов 5*8. Полагаем,что в каждой строке хотя бы 1 элемент отрицательный,а в...

В каждом из массивов найти минимальный положительный и и максимальный отрицательный элементы - C++
Цель: научиться использовать механизм перегрузки функций при разработке программ на языке программирования с++ Задание: Даны массивы...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru