#include <iostream.h>
#include <string.h>
#include <stdio.h>
using namespace std;
struct Node{ //узел списка
public
union { double n; char ch; }; //данные
Node Next;
bool Num; true//число,
false;//символ
Node( double a = 0 ) n(a), Next(NULL), Num(true) {};
Node( char c = 0 ) ch(c), Next(NULL), Num(false) {};
friend ostream & operator( ostream & out, const Node & n );
};
struct List{ //связанный список
Node Begin, End; // первый и последний элемент списка
public
List() Begin(NULL), End(NULL){};
Node begin(){ return Begin; } //начало списка
Node end() { return NULL; } //конец списка
//добавление числа в конец списка
void Push_back( double a ){
if( End )
End = End-Next = new Node(a);
else
Begin = End = new Node(a);
}
//добавление символа в начало списка
void Push_front( char c ){
Node n = new Node(c);
if( Begin ){
n-Next = Begin;
Begin = n;
}
else Begin = n;
}
//удаление данных из списка
void Erase(){
for( End = Begin; Begin; Begin = End ){
End = End-Next;
delete Begin;
}
Begin = End = NULL;
}
~List(){
Erase();
}
};
ostream & operator( ostream & out, const Node & n ){
if( n.Num ) //если узел содержит число
out n.n;
else out n.ch; //иначе содержится симол
return out;
}
MAIN
int main(){
List array;
cout<<"Enter 10 int or char\n";
double n;
char c;
//цикл добавления 10 чисел или символов
for( int i=0; i<10; i++ ){
if( cin>>n ){ //если считали число
array.Push_back( n ); //число в конец списка
}
else{ //если считываем не число
cin.clear();
cin>>c;
array.Push_front( c ); //символ в начало списка
}
}
cout<<"\n\nList out\n";
// Вывод всего что считали
for( Node pt = array.begin(); pt; pt = pt-Next )
cout pt n;
array.Erase(); // удаление всех элементов
cin.sync();
cout<<"\n\nPress enter key to continue";
cin.get();
return 0;
}
(C++)ошибка в коде
А что за ошибки? Код не компилируется или что-то неправильно работает?
Не, здесь ошибки выписует в коде!
1. как программа должна работать;
2. как работает на самом деле.
Это связной список. там разные ошибки, попробуй запустить её у себя в компиляторе
Скажи какой у тебя компилер, на разных могут быть разные проблемы. Даже с корректным кодом.
Ругается на строчку "using namespace std" (я и сама не понимаю, что она означает :( )
а дальше просто смотреть влом
Цитата: Sara
Попробовала запустить в Turbo C++ 3.0 - не компилируется.
Ругается на строчку "using namespace std" (я и сама не понимаю, что она означает :( )
Ругается на строчку "using namespace std" (я и сама не понимаю, что она означает :( )
Это подключение пространства имен std, в котором согласно нынешнему стандарту определена стандартная библиотека С++. Все хидеры без расширения .h размещаются там. Все хидеры с .h - размещаются в глобальном пространстве имен (как правило, устаревшие).
Простите, уважаемый автор, а можно поинтересоваться, где вы взяли этот странный кусок кода? Сами написали или в инете нашли? Может быть, в источнике и есть разгадка? ;)
Компилироваться это действительно не может, ни в одном компиляторе :D
SCORP указал далеко не все ошибки. Их там гораздо больше.
Действительно, нашла этот кусок в нете, ну там писали что она работает, мне списки надо сделать а я в них не очень, помогите отредактировать этот код
Сама нашла ошибки. Все работает