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

Файлы. Удалить все числа между первым максимальным и последним минимальным числом - C++

Восстановить пароль Регистрация
 
VictoriaSagdi
 Аватар для VictoriaSagdi
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 11
06.02.2013, 23:34     Файлы. Удалить все числа между первым максимальным и последним минимальным числом #1
здравствуйте я учусь на 1 курсе и мы про программированию не очень далеко ушли, так что решения должны быть "для чайников" помогите чем сможете, заранее спасибо)
вот такая у меня работа:
1) дан входной файл, каждая строка которого содержит одно целое число. Удалить все числа между первым максимальным и последним минимальным числом. Дополнительный массив не использовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2013, 23:34     Файлы. Удалить все числа между первым максимальным и последним минимальным числом
Посмотрите здесь:

C++ Дан массив D[0:n-1]. Удалить из него элементы, расположенные между первым и последним отрицательными элементами путём сдвига
C++ Вычислить разность между максимальным и минимальным числом массива
C++ задание на тему MinMax (C++) - Дан набор из целых чисел. Найти количество элементов, содержащихся между первым и последним максимальным элементом.
Просуммировать все элементы массива, которые находятся между первым и последним нулем C++
C++ Вычислить разность между максимальным и минимальным числом
C++ Удалить элементы между максимальным и минимальным
Отсортировать числа в диапазоне между первым и последним отрицательными элементами массива (по возрастанию) C++
C++ Найти количество элементов между первым и последним максимальным элементами массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
07.02.2013, 03:09     Файлы. Удалить все числа между первым максимальным и последним минимальным числом #2
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
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
    int temp=0;
    int count=0;
    ifstream infile("in.txt");
    ofstream newfile("in.txt");
    ofstream outfile ("out.txt");
    // новый файл с числами, если файл не открылся, выход из программы
    if(!newfile.is_open()) exit (1);
    for (int i=0, n=25/2; i<n; ++i)
        newfile << rand() % n << endl;
    newfile.close();
    // проверяем, если файлы не  открылись - выход
    if(!infile.is_open() || !outfile.is_open()) exit (1);
    // узнаем количесьво записей
    long int lastpos=0, lastmin=0, firstmax=0;
    int min=0,  max=0;
    bool flag=false;
    while(infile >> temp) {
        if (!flag) {
            min=temp;
            max=temp;
            lastmin=lastpos;
            firstmax=lastpos;
            flag=true;
        }
        if (temp<=min) {
            min=temp;
            lastmin=infile.tellg();
        }
        if (temp>max) {
            max=temp;
            firstmax=infile.tellg();
        }
    }
    long int beg=0, end=0;
    if (lastmin < firstmax) {
        beg=lastmin, end=firstmax;
    } else {
        end=lastmin, beg=firstmax;
    }
    cout << min << " ,   "<< lastmin << endl;
    cout << max << " ,   "<< firstmax <<endl;
    infile.clear();
    infile.seekg(beg, ios_base::beg);
    while (infile>>temp && infile.tellg()<end)
        outfile << temp << endl;
    infile.close();
    outfile.close();
    return 0;
}
Добавлено через 35 минут
C++
1
2
3
4
5
infile.clear();
    infile.seekg(0, ios_base::beg);
    while (infile>>temp)
        if (!(infile.tellg()>start && infile.tellg()<stop))
            outfile << temp << endl;
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,404
07.02.2013, 03:59     Файлы. Удалить все числа между первым максимальным и последним минимальным числом #3
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 <fstream>
 
int main()
{
    std::ifstream ifs("input.txt");
    std::ofstream o("output.txt");
    if (!ifs) return 1;
    int max, min, tick, beg = 0, end = 0, counter = 1;
 
    ifs >> tick;
    max = min = tick;
    while (!ifs.eof() && ifs >> tick)
    {
        if (tick <= min)
        {
            min = tick;
            end = counter;
        }
        if (tick > max)
        {
            max = tick;
            beg = counter;
        }
        counter++;
    }
    ifs.clear();
    ifs.seekg(0);
    for (int i=0; !ifs.eof() && ifs >> tick && i < counter; i++)
        if (i < beg || i > end)
            o << tick << " ";
}
Yandex
Объявления
07.02.2013, 03:59     Файлы. Удалить все числа между первым максимальным и последним минимальным числом
Ответ Создать тему
Опции темы

Текущее время: 18:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru