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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 04:01   #1
Татьянка101
Новичок
Джуниор
 
Регистрация: 03.02.2010
Сообщений: 3
По умолчанию Ошибки в программе по динамическим структурам

Завтра утром надо сдать лабораторную. Но есть пара ошибок, которые я не могу исправить. функция добавляет новый элемент после элемента item
Код:
void add_after(item)
{
     new_item->box=z;
     new_item->next=item->next;
     item->next=new_item;
}
Компилятор Dev-c++ выдал invalid type argument of `->'
Татьянка101 вне форума
Старый 03.02.2010, 05:45   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Где все типы?
Carbon вне форума
Старый 04.02.2010, 03:38   #3
Татьянка101
Новичок
Джуниор
 
Регистрация: 03.02.2010
Сообщений: 3
По умолчанию

C этими ошибками я разобралась (там было неправильная адресация), но программа все-равно не работает.
Посмотрите пожалуйста, что не так
Код:
//Условие: в односвязном списке найти элемент x, перед ним вставить элемент y, а после - z.

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

#define line struct ln


line         //structure line
{
    char box; 
    line *next;
};
line * PHead, * thin_line, * item, * list, *new_item, *go;// tip dannich ukazatel na uzel
int data, x, y, z;
int i;
// функция добавления нового элемента item в конец списка. 
//list -указатель на голову
line*add_box(line ** list, int data)
{
     item=NULL;
     PHead=*list;//ukaz na golovu prisvaivaem ukaz na 
     item=(line *)malloc(sizeof(line));//memorie
     item->box=data;
     item->next=NULL;
     
     if (PHead == NULL)
     {
               *list = item;
     }
     else
     {
         while(PHead->next != NULL)
         {
                           PHead=PHead->next;//go to the end
         }
                           PHead->next=item;
     }
    return(*list);
}
//вывод списка в файл
void push_in_file(line * list)
{
     FILE * rezult=fopen("rezult.txt", "w");
     PHead=list;//указатель на голову
     if(PHead==NULL)
     {              fprintf(rezult, "\n nothing");
     }
     else
         while (PHead != NULL)
         {
               char a=PHead->box;
               fprintf(rezult, " %c, ", a);
         }
     fclose(rezult);
     return;
}   

//считываем список с консоли     
line*read_from_console()
{
    int u; 
	list=NULL;
     printf("\n Vvedite kolichestvo elementov v spiske, bolche nulya:");
     scanf("%d", &i);
      
     for (u=1; u<=i; u++)
          {       scanf("%c", &data);
                  printf("\n Vvesti element:");
                  scanf("%c", &data);
                  add_box(&list, data);
          }
    return(list);
}

//добавление нового элемента y перед заданым  item
void add_before (line * item, line ** list, int y)
{    
    PHead=list;
	new_item=NULL;
	new_item=(line *)malloc(sizeof(line));
      new_item->box=y;
     if (PHead == item)
     {
              new_item->next=PHead;
              PHead=new_item;
              return;
     }
     while ((PHead) && (PHead->next != item))
           PHead=PHead->next;
     if (PHead)
        {
                   new_item->next=PHead->next;
                   PHead->next=new_item;
        }
      return;  
}
//добавление нового элемента z после заданого item
void add_after(line * item, int z)
{
	line*new_item=NULL;
	new_item=(line *)malloc(sizeof(line));
     new_item->box=z;
     new_item->next=item->next;
     item->next=new_item;
     return;
}
//очищаем список
void kill_list(line ** list)
{
     PHead = *list;
	while (PHead != NULL)
 {
		item = PHead;	
		PHead = PHead->next;
		free(item);	
  }
	list = NULL;
}


int main()
{
    list=read_from_console();
    printf("\n VVedite znacheniya x, y, z");
    scanf("\n %c", &x);
    scanf("\n %c", &y);
    scanf("\n %c", &z);
    printf("\n %c, %c, %c", x, y, z);
    go=list;
    while (go)//поиск элемента Х
    {
          if (go->box==x)
          {
                        add_before(go, &list, y);
                        add_after(go, z);
          }
          go=go->next;
          }
    push_in_file(list);
    kill_list(&list);
    return(0);
}
Татьянка101 вне форума
Старый 04.02.2010, 07:20   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

О Господи! Зачем это?
Код:
#define line struct ln
Если это С++, то достаточно
Код:
struct line
{
    char box; 
    line *next;
};
Если это С, то так:
Код:
typedef struct
{
    char box; 
    line *next;
} line;
Вопрос: зачем пишете в С стиле, если компилите С++ компилятором?

А теперь по существу: что значит "программа не работает"? Она падает? Может неправильное выводит?

Давайте данные, на которых не работает. А то одновременно разбирать чужой код и телепатировать как-то не очень.
Carbon вне форума
Старый 04.02.2010, 19:22   #5
Татьянка101
Новичок
Джуниор
 
Регистрация: 03.02.2010
Сообщений: 3
По умолчанию

Пока переписывала код, нашла ошибки. Можете удалить тему?
Татьянка101 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по динамическим структурам Sergy Win Api 2 10.05.2011 13:37
ошибки в программе по С++ Игорь11071990 Помощь студентам 2 20.01.2010 14:22
ошибки в программе gralex10 Помощь студентам 0 16.12.2009 00:37
Помогите разобраться с лабораторной по динамическим структурам данных TiK_Tak Помощь студентам 8 25.11.2009 13:32
Прошу вашей помощи в реализации программы по динамическим структурам technotamplier Помощь студентам 0 25.10.2009 22:20