Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ксения777
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 14
#1

Подскажите в чем ошибка?почему ничего не делает? - C++

12.06.2012, 16:45. Просмотров 283. Ответов 0
Метки нет (Все метки)

Тема односвязные линейные списки. Дан текстовый файл, компонентами которого являются целые числа. Удалить из файла группы подряд идущих одинаковых чисел.
Код
#include <fstream> 
#include <iostream> 
#include <locale.h> 
#include <stdlib.h> 
using namespace std; 
struct LIST { 
int number; 
LIST *next; 
}; 
//Функция чтения данных и занесения их в создаваемый список: 
LIST *read_list(LIST *lst) 
{ 
  LIST *p; 
  int t; 
  ifstream f("1.txt"); 
  if (f) //Если файл существует 
  { 
      f>>t; 
  if (!f.eof())//Если файл не пуст 
      { 
         lst=new LIST; 
         p=lst; 
         p->number=t; 
     f>>t; 
         while (!f.eof())//Пока не конец файла 
         { 
          p->next=new LIST; 
          p=p->next; 
          p->number=t; 
      f>>t; 
         } 
         p->next=NULL; 
     }  
     else  
       cout<<"Файл пустой"<<'\n'; 
  } 
  else  
  { 
    cout<<"Файл отсутствует"<<'\n'; 
    exit(1); 
  } 
  return lst; 
}

  LIST *del_group_element(LIST *lst) 
{ 
  LIST *p1=lst;
  
 if ( p1 == 0) return lst;
  
  do
  {
    int num = p1->number;
    LIST *prev = p1;
    LIST *pos  = p1->next;
    int delete_flag = 0;
    while (pos != 0)
    {
      if (pos->number == num)
      {
        LIST* tmp = pos;
        pos = pos->next;
        prev->next = pos;
        delete tmp;
        delete_flag = 1;
      }
      else
      {
        prev = pos;
        pos  = pos->next;
      }
    }

    if (delete_flag)
    {
      LIST* tmp = p1;        
      p1 = p1->next;
      delete tmp;
    }
    else
      p1 = p1->next;
 
  } while (p1 != 0);
  //return lst;
}

void write_list(LIST *lst) 
{ 
  ofstream f("2.txt"); 
  LIST *p1=lst,*pred; 
  p1=lst;
  pred=p1;
  while (p1->next!=NULL)
  {    
	  f<<p1->number;
    pred=p1;
	p1=p1->next;
  }
  f.close();
} 
// Основная функция: 
int main() 
{ 
  LIST *lst=NULL; 
  int n; 
  setlocale(LC_CTYPE,""); 
  
  lst=read_list(lst); 
  lst=del_group_element(lst); 
  write_list(lst); 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2012, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите в чем ошибка?почему ничего не делает? (C++):

Программа после компиляции ничего не делает - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main(int argc, char *argv) { int n;// Êîëè÷åñòâî...

подскажите в чем ошибка? - C++
РАБОТА Девятиклассница Лера решила заработать денег на поющую куклу. Подходящая вакансия нашлась в фасовочном цехе ликероводочного...

Подскажите в чем ошибка - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; void main() { int i; float a,b; double c; FILE *fout; ...

Подскажите, в чем ошибка? - C++
,,,

Подскажите в чем ошибка - C++
Не могу понять в чем ошибка #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; using namespace...

Подскажите в чем ошибка - C++
Не могу понять вроде все правильно а не запускается #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2012, 16:45
Привет! Вот еще темы с ответами:

Подскажите в чем ошибка (С++) - C++
typedef struct { char name, mark; unsigned price, num; } Comp; Comp *list = NULL; int cnt = 0; int Add(Comp val)

Подскажите в чем ошибка?! - C++
#include&lt;windows.h&gt; LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE my_hinstance, HINSTANCE...

Подскажите в чем ошибка! - C++
Программа должна выводить адресса букв, но в итоге выводит ошибку &quot;error: invalid type argument of `unary *' &quot; в 17 строке. Почему??? ...

подскажите в чем ошибка? - C++
В массив А занесены натуральные числа.Найти сумму элементов, которые кратны данному К написал код, но программа не считает сумму,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru