C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
В чём ошибка?
DeN
Отправлено: 30.11.2005, 13:31


Не зарегистрирован







Вроде правильно написал а не пашет, ещё и компилятор совсем глючит.... Вообщем задача такова надо ввести любые слова например: sst fvva addd
и должно выдавать:
addd
fvva addd
sst fvva addd
а если sds fdgs sgdsgdsfgdgdf.........dsgfdsfg(больше 255)
то: ошибка...
Вот мой код...
CODE

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<string.h>

structlist
{
char*  word;
list* next;
};

void addNode(list* head,const char* word)
{
list* tmp=head;

while(tmp->next !=0)
tmp=tmp->next;
tmp->next=new list;
int len=strlen(word)+1;
tmp=tmp->next;
tmp->word=new char[len];
strcpy(tmp->word,word);
tmp->next=0;
}

void delList(list* head)
{
list* tmp=head->next;
while(tmp)
{
delete[]tmp->word;
tmp=tmp->next;
}

tmp=head->next;
while(tmp)
{

list* p=tmp;
tmp=tmp->next;
delete p;
}
}

void print(list* head)
{
list* tmp=head->next;
while(tmp)
{
cout<<tmp->word<<endl;
tmp=tmp->next;
}
}

void swapNode(list* lhs,list* rhs)
{
char* tmp=lhs->word;
lhs->word=rhs->word;
rhs->word=tmp;
}

void sortList(list* head)
{
int size=0;
list* tmp=head->next;
for(;tmp->next;tmp=tmp->next,size++);
for(;size;size--)
{
tmp=head;
for(int i=size;i;tmp=tmp->next,i--)
{
if(strncmp(tmp->word,tmp->next->word,6)>0)
swapNode(tmp,tmp->next);
}
}
}
void main()
{
list head;
head.next=0;
head.word=0;
char a[255]={0};
cin.getline(a,255);
int inWord=0;
int len=strlen(a)+1;
char* iter=a;
for(int i=0; i<len; i++, iter++)
{
if(*iter!=' ')
{
if(inWord) continue;
inWord=1;
addNode(&head,iter);
}
else inWord=0;
}
sortList(&head);
print(&head);
delList(&head);
}


Отредактировано Konstantine — 30/11/2005, 14:51
Grigoriy
Отправлено: 30.11.2005, 20:16


Мастер участка

Группа: Участник
Сообщений: 381



Сам придумал программу или откуда то скопировал.... ?
QUOTE

CODE

char a[255]={0};
cin.getline(a,255);


Смотри сам, есть число 255 ?

Вернуться в Вопросы программирования в C++Builder