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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 18:34   #1
Льолик
Новичок
Джуниор
 
Регистрация: 22.03.2012
Сообщений: 2
Сообщение Не знаю как исправить некоторые баги

Здравствуйте уважаемые господа!
Задание которое исполняет программа заключаеться в том что нужно посчитать количество положительных чисел между первым отрицательным числом и нулем. Числа вытягиваются из тхт файла.
Код:
#include <iostream>
#include <fstream>
using namespace std;
int zat, kod, kil=0, chusla, n,k ;
int main(){
	ifstream input("f1.txt");
	ofstream output("f2.txt");
		if (!input){cerr<<"Not found input"<<endl;cin>>zat;return 1;}
		if (!output){cerr<<"Not found output"<<endl;cin>>zat;return 1;}
   input>>n;
   for(int i=0;i<n;i++){
   input>>chusla;
      if(chusla<0){
		while(chusla!=0){
			k=k+i+1;
			input>>chusla;
			if(chusla>0){kil=kil+1;}
			if(k==n){break;kil=0;}
	  }}
	}
   cout<<kil;
cin>>zat;
return 0;
}
если такая последовательность чисел (10 2 -2 2 3 -5 4 0 8 5 10) все работает правильно, но если (10 2 -2 2 3 -5 4 10 8 5 10) программа зацикливается а другой баг вылазит если последовательность такая (14 2 -2 4 0 8 5 10 -4 3 4 0 -6 8 0), помогите пожалуйста.

Последний раз редактировалось Льолик; 22.03.2012 в 21:03.
Льолик вне форума Ответить с цитированием
Старый 23.03.2012, 11:18   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:
#include <iostream>
#include <fstream>
using namespace std;
int zat, kod, kil=0, chusla, n,k ;
int main(int argc, char* argv[])
{
	ifstream input("f1.txt");
	ofstream output("f2.txt");
		if (!input){cerr<<"Not found input"<<endl;cin>>zat;return 1;}
		if (!output){cerr<<"Not found output"<<endl;cin>>zat;return 1;}
  

   while(!input.eof())
   {
        input >>chusla;
        if(chusla>0)
                continue;
        else
        {

                do
                {
                        input >>chusla;
                        if(chusla >0)
                                ++kil;
                        if(chusla == 0)
                                break;

                }while(!input.eof());
                break;
        }

   }

if(!input.eof() || chusla == 0)
   cout<<kil<< endl;
else
   cout << "Не найден завершающий 0!"<< endl;
cin>>zat;
return 0;
}
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 23.03.2012 в 11:21.
Krok27 вне форума Ответить с цитированием
Старый 24.03.2012, 01:09   #3
Льолик
Новичок
Джуниор
 
Регистрация: 22.03.2012
Сообщений: 2
Радость

Большое-большое-прибольшое пасибо!!!
Льолик вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно исправить некоторые косяки сайта (css) Новичок! HTML и CSS 7 15.03.2012 12:16
не знаю как исправить ошибку Katrina* Паскаль, Turbo Pascal, PascalABC.NET 2 22.12.2011 09:55
Не могу найти ошибку... хотя я ее нашел... но не знаю как исправить))) ( удаление строки из файла) dykatob Общие вопросы C/C++ 0 03.06.2011 10:42
Ошибка вроде простая, но не знаю, как её исправить mobilitialex Общие вопросы Delphi 3 15.04.2011 12:51
Допущена ошибка,не знаю как исправить sSilen Помощь студентам 8 08.01.2011 20:56