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

Первый отрицательный и последний положительный элемент читаемый из файла - C++

Восстановить пароль Регистрация
 
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
21.06.2014, 02:44     Первый отрицательный и последний положительный элемент читаемый из файла #1
Из файла (имя файла вводится с клавиатуры) считывается массив целых чисел. Размер массива заранее неизвестен.
Выведите в файл количество четных чисел, расположенных в массиве между первым и положительным последним отрицательным числами в массиве.Подскажите что не так.
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
#include<iostream>
#include<vector>
#include<fstream>
#include<string>
 
using namespace std;
 
bool prov(double num)
{
if(num - (int)num != 0) return false;
return true;
}
 
void main()
{setlocale(0,"");
string nameIn;
string nameOut;
 
cout<<"Путь к файлу для чтения: ";
getline(cin,nameIn);
 
cout<<"Путь к файлу для записи: ";
getline(cin,nameOut);
 
ifstream in(nameIn);
ofstream out(nameOut);
vector<int> mas;
 
while(!in.eof())
{ 
double n;
in>>n;
if(!prov(n))
{
cout<<"error";
system("pause");
return;
}
 
 
mas.push_back(n);
}
 
int otr = mas.size() - 1;
int pol = 0;
 
while(pol > mas.size() - 1 && mas[pol] < 0) pol--;
 
while(otr < 0 && mas[otr] > 0) otr++;
 
int ch = 0;
 
for(int i = pol + 1; i < otr - 1; i++)
{
if(mas[i]%2 == 0)ch++;
}
 
out<<ch;
 
in.close();
out.close();
 
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2014, 02:44     Первый отрицательный и последний положительный элемент читаемый из файла
Посмотрите здесь:

C++ Переставить в 1-м массиве первый отрицательный и последний положительный элемент местами
C++ Массив: вывести 1й положительный и последний отрицательный элемент массива
C++ Найти максимальный отрицательный и минимальный положительный элемент и поменять их местами
Строки. Как найти в слове первый элемент? Второй элемент, последний элемент? C++
Поменять местами первый положительный и последний отрицательный элементы генераторам случайных чисел в одномерном массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
21.06.2014, 02:47     Первый отрицательный и последний положительный элемент читаемый из файла #2
Если массив целых числе в файле, зачем вводите double n, а не int n, к примеру?
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
21.06.2014, 02:50  [ТС]     Первый отрицательный и последний положительный элемент читаемый из файла #3
не знаю. привычка. уже исправил.спасибо. но меня больше волнует сам кусок
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
}
 
int otr = mas.size() - 1;
int pol = 0;
 
while(pol > mas.size() - 1 && mas[pol] < 0) pol--;
 
while(otr < 0 && mas[otr] > 0) otr++;
 
int ch = 0;
 
for(int i = pol + 1; i < otr - 1; i++)
{
if(mas[i]%2 == 0)ch++;
}
 
out<<ch;
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
21.06.2014, 02:53     Первый отрицательный и последний положительный элемент читаемый из файла #4
А что вас здесь волнует?
Программа то работает правильно?
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
21.06.2014, 02:55  [ТС]     Первый отрицательный и последний положительный элемент читаемый из файла #5
RamonN, дело в том что она то никаких значений в др файле не выдает то совсем не те что нужно
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
21.06.2014, 03:02     Первый отрицательный и последний положительный элемент читаемый из файла #6
Сейчас попробовал у себя запустить, вроде бы все работает, что же не так программа у вас выводит?
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
21.06.2014, 03:07  [ТС]     Первый отрицательный и последний положительный элемент читаемый из файла #7
RamonN, проверил на наборе -6 1 2 4 6 8 -8 -1 вроде при выходе оно должно вывести кол-во четных 5 а выдает 4 шт
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
21.06.2014, 03:10     Первый отрицательный и последний положительный элемент читаемый из файла #8
Вот в это куске, как и вы и говорили, при инициализации otr = max.size();
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int otr = mas.size();
int pol = 0;
 
while(pol > mas.size() - 1 && mas[pol] < 0) pol--;
 
while(otr < 0 && mas[otr] > 0) otr++;
 
int ch = 0;
 
for(int i = pol + 1; i < otr - 1; i++)
{
if(mas[i]%2 == 0)ch++;
}
 
out<<ch;
сприт
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 11
21.06.2014, 03:16  [ТС]     Первый отрицательный и последний положительный элемент читаемый из файла #9
RamonN, огромное спасибо сейчас попробую. За рание спасибо
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
21.06.2014, 03:21     Первый отрицательный и последний положительный элемент читаемый из файла #10
сприт,
Но для лучшего вида, я бы на вашем месте, вышеприведенный кусок кода изменил на вот этот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int otr = mas.size();
int pol = 0;
 
for (auto iter = mas.rbegin(); iter != mas.rend(); iter++) {
    if (*iter < 0)
        break;
    else
        otr--;
}
 
for (auto iter = mas.begin(); iter != mas.end(); iter++) {
    if (*iter > 0)
        break;
    else
        pol++;
}
Более удобочитаемый получается.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2014, 03:49     Первый отрицательный и последний положительный элемент читаемый из файла
Еще ссылки по теме:

Поменять местами минимальный элемент и первый отрицательный элемент массива целых чисел C++
C++ В массиве найти минимальный положительный и максимально отрицательный элемент и вычисляет их следующее значени
Поменять местами первый отрицательный и последний положительный элемент массива C++

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

Или воспользуйтесь поиском по форуму:
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
21.06.2014, 03:49     Первый отрицательный и последний положительный элемент читаемый из файла #11
я чего-то не понимаю, или мне кажется, что ни один из вайлов ни разу не выполнится???(ну кроме того что считывает числа)

Добавлено через 7 минут
не спел исправить сообщение

оказалось, что условие в названии темы и условие в сообщении различаются

1) в в знавании темы : между 1 отрицательным и последним положительным
2) в сообщении : между 1 положиельным и последним отрицательным

так какое из этих условий правильное?
Yandex
Объявления
21.06.2014, 03:49     Первый отрицательный и последний положительный элемент читаемый из файла
Ответ Создать тему
Опции темы

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