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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2011, 23:39   #1
Даsha
 
Регистрация: 20.02.2011
Сообщений: 9
По умолчанию Двусвязный список

Помогите пожалуйста...
не работает функция вывода двусвязного списка


#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <alloc.h>
#include <string.h>

struct elem
{
char name[25];
char program[25];
char firm[25];
int price;
elem *next;
elem *prev;
};

void dlstore(void);
void list(void);
void display(void);




void main (void)
{



int l=0;
int k=0;
do
{
clrscr();
puts("********Glavnoe menu********\n");
puts("1. Dobavit' element\n");
puts("2. Edit element\n");
puts("3. Delet element\n");
puts("4. Poisk\n");
puts("5. Sortirovka\n");
puts("6. Read file\n");
puts("7. Write file\n");
puts("8. Vivod bazi dannix\n");
puts("9. Exit\n");

switch(getch())
{
case'1':
clrscr();
//int kolichestvo=0;

clrscr();

do
{
clrscr();
puts("1. Dobavlenie v konec\n");
puts("2. Sozdanie s yporyadochivaniem\n");
puts("3. Vixod v glavnoe menu\n");

switch(getch())
{
case'1':
clrscr();
dlstore();
getch();
break;
case'2':
clrscr();
getch();
break;
case'3':
l=1;
break;
default:
puts("Takogo punkta menu net\n");
getch();

}
}
while(l==0);
break;
case'8':
clrscr();
list();
getch();
break;

case'9':
k=1;
break;
default:
puts("Takogo punkta menu net\n");
getch();


}
}
while(k==0);
}

void dlstore(void)
{

elem *Baza;
elem *i;
elem *head=NULL;
elem *tail=NULL;
Baza=(elem*)malloc(sizeof(elem));
if(!Baza)
{
puts("\n Net svobodnoi pamyati");
return;
}
printf("Vvedite nazvanie CD:");
scanf("%s",Baza->name);
printf("Vvedite nazvanie programmi: ");
scanf("%s",Baza->program);
printf("Vvedite nazvanie firmi: ");
scanf("%s",Baza->firm);
printf("Vvedite cenu: ");
scanf("%d",&Baza->price);
i->prev=tail;
i->next=NULL;
if(tail)
tail->next=i;
tail=i;
if(!head)
head=tail;
}

void display (elem *Baza)
{
printf("%s\n", Baza->name);
printf("%s\n", Baza->program);
printf("%s\n", Baza->firm);
printf("%s\n", Baza->price);
printf("\n\n");
}
void list (void)
{
elem *head;
elem *Baza;
Baza=head;
while(Baza)
{
display(Baza);
Baza=Baza->next;
}
printf("\n\n");
}
Вложения
Тип файла: txt BAZA.txt (2.3 Кб, 124 просмотров)
Даsha вне форума Ответить с цитированием
Старый 26.06.2011, 00:27   #2
Jakethefish
Форумчанин
 
Регистрация: 13.11.2009
Сообщений: 121
По умолчанию

Что конкретно не работает?
Jakethefish вне форума Ответить с цитированием
Старый 26.06.2011, 10:10   #3
Даsha
 
Регистрация: 20.02.2011
Сообщений: 9
По умолчанию

функция вывода list()
выводит какую-то чушь...значки символки :D
не знаю как исправить
Даsha вне форума Ответить с цитированием
Старый 26.06.2011, 11:45   #4
Jakethefish
Форумчанин
 
Регистрация: 13.11.2009
Сообщений: 121
По умолчанию

Цену выводит правильно?

Возможно у вас
Код:
printf("%s\n", Baza->name);
printf("%s\n", Baza->program);
printf("%s\n", Baza->firm);
printf("%s\n", Baza->price);
Выводит адреса вида 0xeac3ff.
Хотя может и нет. Данные у вас должны выводится на русском языке или английском? То есть русские символы вообще ужасно обрабатываются. Если же у вас латиница, то пожалуйста приведите пример вывода.
Jakethefish вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязный список decantnik Паскаль, Turbo Pascal, PascalABC.NET 0 09.05.2011 00:58
Двусвязный список Work Group Паскаль, Turbo Pascal, PascalABC.NET 12 13.07.2010 01:44
двусвязный список Work Group Помощь студентам 0 24.05.2010 21:27
двусвязный список klykovka Помощь студентам 8 22.05.2010 18:58
двусвязный список на си++ mizantrop32 Общие вопросы C/C++ 0 18.05.2010 17:45