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

Нахождение последнего отрицательного элемента массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как ортировать массив чтобы выдавало только елементы стоящие на нечетных позициях ? http://www.cyberforum.ru/cpp-beginners/thread100358.html
как ортировать массив чтобы выдавало только елементы стоящие на нечетных позициях ?
C++ оператор find в stl Допустим у меня есть такой код: #include <vector> #include <algorithm> #include <string> #include <windows.h> #include <iostream> using namespace std; class Student http://www.cyberforum.ru/cpp-beginners/thread100357.html
C++ сортировка массива
из исходного массива создать массив состоящий из четных еллементов стоящих в нечетных местах.на примере етого {p=random(24)-10; printf("%4d",p); if (p>0 && (p%2!=0)) {x=p; count++; } зараннее благодарен
C++ Какую площадь и периметр будет квадрат, описанный вокруг круга заданной площади S
Какую площадь и периметр будет квадрат, описанный вокруг круга заданной площади S.
C++ совсем НОВИЧОК! http://www.cyberforum.ru/cpp-beginners/thread100301.html
помогите пожалуйста решить 2 задачи! нужно до 18:00 2 марта Напишите программу, использующую рекурсивную функцию, которая определяет является ли заданное натуральное число простым. Входные данные: Натуральное число x. Выходные данные: Сообщение YES, если число x является простым числом. И сообщение NO в противном случае. Сообщение выводится в одной строке заглавными латинскими буквами. ...
C++ Удаление подстроки (С) Ребят кто может помочь с удаление подстроки в строке, может у когото код завалялся. Строка: Пальцы его мнут и мнут глину. Удалить: "и мнут" подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.03.2010, 00:58     Нахождение последнего отрицательного элемента массива
Так что ищем-то? Последний отрицательный элемент массива, или элемент с минимальным значением? На всякий случай и то, и другое, только входной файл по другому называется:
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
66
67
68
69
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
#include <string>
 
int main(){
    std::vector<int> vec;
    int tmp;
    const char *fin_name = "input.txt", *fout_name = "output.txt";
 
    std::ifstream fin(fin_name);
    if ( !fin.is_open() ){
        std::cerr << "Can't open file <" << fin_name << "> for input!" << std::endl;
        return 1;
    }
    while ( fin >> tmp )
        vec.push_back(tmp);
    if ( fin.bad() ){
        std::cerr << "Can't read from file <" << fin_name << ">!" << std::endl;
        return 1;
    }
    fin.close();
 
    if ( vec.empty() ){
        std::cerr << "Error! Array is empty!" << std::endl;
        return 1;
    }
 
    std::ofstream fout(fout_name);
    if ( !fout.is_open() ){
        std::cerr << "Can't open file <" << fout_name << "> for output!" << std::endl;
        return 1;
    }
    fout << "Array:" << std::endl;
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(fout, "\n"));
    fout << std::endl;
 
    std::binder2nd < std::less<int> > IsNegative (std::less<int>(),0);
    std::binder2nd < std::greater_equal<int> > IsPositive (std::greater_equal<int>(),0);
    std::vector<int>::iterator i, j;
    i = std::find_if(vec.begin(), vec.end(), IsNegative);
    if ( i != vec.end() ){
        j = std::find_if(i, vec.end(), IsPositive);
        fout << "Last negative element: " << *(--j) << std::endl;
    }
    else
        fout << "No negative elements in array." << std::endl;
    fout << std::endl;
 
    i = std::min_element(vec.begin(), vec.end());
    fout << "Minimum value of array elements: " << *i << std::endl;
 
    fout.close();
 
    fin.open(fout_name);
    if ( !fin.is_open() ){
        std::cerr << "Can't read just written file!" << std::endl;
        return 1;
    }
    std::string buf;
    while ( std::getline(fin, buf) )
        std::cout << buf << std::endl;
    fin.close();
 
    return 0;
}
 
Текущее время: 10:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru