Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2011, 00:59   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию C++ вывод данных из последовательности: нужна консультация

У меня уже написана программа. Но я никак не могу решить проблему -
мне необходимо вывести 1, 2, предпоследний и последний элемент последовательности. Первый и второй выводит без проблем... с 2 последними ерунда. Я сделала дополнительный счетчик - предварительно считаю количество элементов в файле, а потом в основном цикле последний и предпоследний элемент проверяю через if i==cout-1 или i==count и все... программа начинает показывать ерунду. Сразу считает неправильно.

Я пока "неправильные" блоки закомментировала - может кто даст добрый совет, как можно реализовать вывод предпоследнего и последнего элемента... или у меня просто где-то ошибка закралась, поэтому нормально не работает?

Код:
#include<iostream>
#include<fstream>
#include<conio.h>

using namespace std;
int main()

{
int summa=0, summa_2=0, i=0, number=0, count=0;
float average=0;
ifstream in_stream;
ofstream out_stream;

/*
//in_stream.open("Numbers_avarage.txt");
//
//while ( !in_stream.eof() )
//{
//	count++;
//in_stream >> number;
//}
//in_stream.close();

//cout<<"Dlja kontrolja: kol-vo count"<<count<<endl;

*/

in_stream.open("Numbers_avarage.txt");
/*//while ( i<count ) */
while ( !in_stream.eof() )
{i++;
in_stream >> number;
summa=summa+number;

	if (i%2==0)
	{
		summa_2=summa_2+number;
	}

	if ((i==1)||(i==2)/*||(i==count-1)||(i==count)*/)

	{
		cout<<"Element "<<i<<" "<<number<<endl;
	}

}

in_stream.close();

cout<<"Dlja kontrolja: summa vseh elementov "<<summa<<" i"<<i<<endl;
average=summa/float(i);
//////////Vivodim srednee znachenie///////
cout<<"Srednee znachenie: "<<average<<endl;
cout<<"Summa chetnih elementov: "<<summa_2<<endl;


_getch();
return 0;

}
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 14.05.2011 в 01:11.
Blondy вне форума Ответить с цитированием
Старый 14.05.2011, 01:12   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Опять же, если в файле за последним числом есть пробелы - прочитается одно лишнее "мусорное".
Son Of Pain вне форума Ответить с цитированием
Старый 14.05.2011, 01:14   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Так вот именно в таком виде он считает все правильно.... А если начинаю мудрить с двумя последними элементами - все насмарку((((
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 14.05.2011, 01:23   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Ну перепиши для надежности так )

Код:
#include<iostream>
#include<fstream>
#include<conio.h>
using namespace std;
int main()
{
	int summa=0, summa_2=0, i=0, number=0, count=0;	
	float average=0;
	ifstream in_stream;
	ofstream out_stream;

	in_stream.open("Numbers_avarage.txt");
	while (in_stream >> number)
		count++;

	in_stream.close();

	cout<<"Dlja kontrolja: kol-vo count"<<count<<endl;


	in_stream.open("Numbers_avarage.txt");
	while (in_stream>>number)
	{
		i++;
		summa=summa+number;

		if (i%2==0)
		{
		summa_2=summa_2+number;
	}

	if ((i==1)||(i==2)||(i==count-1)||(i==count))

	{
		cout<<"Element "<<i<<" "<<number<<endl;
	}

}

in_stream.close();

cout<<"Dlja kontrolja: summa vseh elementov "<<summa<<" i"<<i<<endl;
average=summa/float(i);
//////////Vivodim srednee znachenie///////
cout<<"Srednee znachenie: "<<average<<endl;
cout<<"Summa chetnih elementov: "<<summa_2<<endl;


_getch();
return 0;

}
Son Of Pain вне форума Ответить с цитированием
Старый 14.05.2011, 01:32   #5
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Тот же самый результат... он почему-то сразу обнуляет i и начинает выступать... то есть получается он цикл основной не проходит так, видит первое значение i=0 и все - у него сразу деление на 0 начинется.....
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan

Последний раз редактировалось Blondy; 14.05.2011 в 01:35.
Blondy вне форума Ответить с цитированием
Старый 14.05.2011, 02:00   #6
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Странно, проверил у себя - все работает. Покажи, что написано у тебя в текстовом файле?
Son Of Pain вне форума Ответить с цитированием
Старый 14.05.2011, 02:08   #7
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

сейчас))

Я уже вообще ничего ен понимаю..вроде бы там все чисто в хвосте
Вложения
Тип файла: txt Numbers_avarage.txt (18 байт, 143 просмотров)
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 14.05.2011, 02:18   #8
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Запустил у себя, все работает )

Цитата:
Dlja kontrolja: kol-vo count9
Element 1 1
Element 2 7
Element 8 5
Element 9 1
Dlja kontrolja: summa vseh elementov 46 i9
Srednee znachenie: 5.11111
Summa chetnih elementov: 21
Ты в коде точно ничего не меняла?
Son Of Pain вне форума Ответить с цитированием
Старый 14.05.2011, 02:22   #9
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Упаси Господь!))))

Сейчас на на свежем проекте протестирую
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 14.05.2011, 02:37   #10
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Та же самая история

Вот какой кошмар
Изображения
Тип файла: jpg untitled.JPG (16.9 Кб, 55 просмотров)
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База данных в Firebird, интерфейс в Delphi.Нужна консультация. drakon803 БД в Delphi 1 26.10.2011 21:54
Нужна консультация! Unamed Работа с сетью в Delphi 4 24.07.2010 13:06
Нужна консультация GSV84 Свободное общение 9 02.02.2010 22:43
Нужна консультация NoVeto Помощь студентам 3 29.01.2010 00:10
нужна консультация =( ShuraFK Софт 3 27.04.2009 16:43