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

Другие виды списков - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Наибольшее из трех чисел http://www.cyberforum.ru/cpp-beginners/thread741266.html
Составить функцию, которая получает три аргумента х, y, и z, и возвращает как результат наибольшее из х,y,z.
C++ Заменить каждую из групп точек одной точкой Ввести строку. Создать функцию, позволяющую заменить в заданной строке каждую из групп стоящих рядом точек одной точкой. Если знака <<.>> нет в строке, то вывести сообщение об етом.(использовать указатели). http://www.cyberforum.ru/cpp-beginners/thread741259.html
C++ Callback
Сделал класс кнопки, теперь пытаюсь сделать так, чтобы при нажатии кнопка вызывала функцию из нужного мне класса. Пытался сделать так: Класс функтора template <class T> class CFunctor { public: CFunctor() { m_Instance = NULL; m_MethodPointer = NULL; } ~CFunctor() {};
Написать функцию для разбиения числа на числа C++
Помогите написать функцию для разбиения числа на числа! Например ввели 12345 а должна вывести 1 2 3 4 5
C++ Задается произвольный текст. В тексте заменить все ТЧК, ЗПТ и другие сокращения на соответ-ствующие им знаки препинания http://www.cyberforum.ru/cpp-beginners/thread741250.html
Задается произвольный текст, содержащий не более 10 строк, в каждой строке не бо-лее 80 символов. В тексте заменить все ТЧК, ЗПТ и другие сокращения на соответ-ствующие им знаки препинания, убирая пробелы перед ними. Полученный текст напечатать. ПОМОГИТЕ НАПИСАТЬ ПРОГУ
C++ Перевод позиционно дроби в другое основание Есть дробь, записанная в смешанной системе с меньшим основанием, равным двойке. Например, в двоично-восемнадцатеричной. Дано большее основание системы, в которой записана дробь. Задано большее основание другой системы счисления, так же с меньшим основанием, равным двум. Надо точно перевести дробь из одной смешанной системы, в другую. Например, из двоично-восемнадцатеричной в двоично-шестеричную,... подробнее

Показать сообщение отдельно
alexminin007
 Аватар для alexminin007
7 / 7 / 1
Регистрация: 22.10.2012
Сообщений: 105
21.12.2012, 22:48     Другие виды списков
Помогите найти и исправить ошибку в задачке
В текстовом файле заданы действительные числа. Выбрать из него убывающую последовательность наибольшей длины и вывести ее на экран. Если таких последовательностей несколько, то вывести их все в отдельной строке каждую.
Для заполнения убывающих последовательностей формировать массив очередей, хранить для каждой очереди длину ее (количество элементов)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <vcl.h>
#pragma hdrstop
#include <conio.h>
#include <iomanip.h>
#include <iostream.h>
#include <fstream.h>
#include <tchar.h>
#include <stdlib.h>
 
struct List
{
 int data;
 List *next;
};
 
typedef List* Lptr;
 
 
struct Queue
{
 Lptr first,last;
};
 
Queue *m;
int *n;
 
int outF(char namef[]);
void Qput(Queue&Q,int x);
int Qout(Queue&Q);
int ubiv_pos(char namef[]);
 
int _tmain(int argc, _TCHAR* argv[])
{
 int kol,i,j,max;
 
 outF("C:\\posled.txt");
 kol=ubiv_pos("C:\\posled.txt");
 ifstream F("C:\\posled.txt",ios::in);
 
 Queue Q1;
 Q1.first=Q1.last=NULL;
 
 max=n[0];
 j=0;
 for(i=1;i<kol;i++)
  if(n[i]<max)
   max=n[i];
 cout<<"Ibivayuachaya posledovatel'nost' naib dlini;"<<endl;
 for(i=0;i<kol;i++)
  {
   Q1=m[i];
   if(max==n[i])
    {
     while(Q1.first)
      cout<<Qout(Q1)<<' ';
     cout<<endl;
    }
  }
 
// Lptr Head;
// Head=NULL;
 
    getch();
    return 0;
}
 
int outF(char namef[])
{
 ifstream F(namef);
 float x;
 if(F.fail())
 {
  cout<<"Fayl ne nayden";
  getchar();
  return 0;
 }
 cout<<"Soderzhimoe fayla:"<<endl;
 while(!F.eof())
 {
  F>>x;
  cout<<x<<'\t';
 }
 F.close();
 return 1;
}
 
int ubiv_pos(char namef[])
{
 ifstream F(namef);
 float x,z;
 int k=1,dl=1;
 F>>z;
 Queue H;
 H.first=H.last=NULL;
 Qput(H,z);
 while(F>>x)
 {
  if(x<z)
   {
    Qput(H,x);
    z=x;
    dl++;
   }
  else
   {
    z=x;
    m[k-1]=H;
    n[k-1]=dl;
    dl=0;
    Queue H;
    H.first=H.last=NULL;
    Qput(H,x);
    k++;
   }
 }
 F.close();
 return k;
}
 
void Qput(Queue&Q,int x)
{
 Lptr tmp=new List;
 tmp->data=x;
 tmp->next=NULL;
 if (Q.last==NULL)
 {
  Q.first=Q.last=tmp;
  return;
 }
 Q.last->next=tmp;
 Q.last=tmp;
}
 
int Qout(Queue &Q)
{
 Lptr t=Q.first;
 int x=t->data;
 Q.first=t->next;
 if (Q.first==NULL)
  Q.last=NULL;
 delete t;
 return x;
}
Добавлено через 4 часа 51 минуту
нашол ошибку гдето здесь,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 while(F>>x)
 {
  if(x<z)
   {
    Qput(H,x);
    z=x;
    dl++;
   }
  else
   {
    z=x;
    m[k-1]=H;
    n[k-1]=dl;
    dl=0;
    Queue H;
    H.first=H.last=NULL;
    Qput(H,x);
    k++;
   }
 }
Помогите исправить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru