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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2013, 01:54   #1
Алексей21357
Новичок
Джуниор
 
Регистрация: 23.11.2013
Сообщений: 2
По умолчанию Помощь с динамическими структурами

Помогите пожалуйста, ибо которую неделю не могу справиться с задачей. Нужно что бы программа считывала данные и организовывала их в виде одностороннего списка. Но, я уже как не пытаюсь - не получается.
Код:
#include <stdio.h>
#include <stdlib.h>

struct spisok {struct spisok* next; char *name;};
struct spisok* add(void);
void show(struct spisok*);

struct spisok* head;

int main()
{
    head = add();
    show(head);
    
    system("PAUSE");
}

struct spisok* add(void)
{
       struct spisok* pred;
       char c, *str;
       head = (struct spisok*)malloc(sizeof(struct spisok));
       
       head->next = NULL;
       printf("Input string:> ");
       scanf("%s",head->name);
       
       do{
            head = pred = (struct spisok*)malloc(sizeof(struct spisok));
            
            pred->next = head;
            printf("Input string:> ");
            scanf("%s",pred->name); 
            
            head = pred;
           
            printf("Stop it:> ");
            c = getch();
       }while(c == 'y');
       
       return head;       
}

void show(struct spisok* p)
{
       while(p != NULL)
       {
            printf("\n%s", p->name);
            p = p->next;
       }
       printf("\n");
}
Алексей21357 вне форума Ответить с цитированием
Старый 23.11.2013, 13:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Я бы примерно так делал:
Код:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct spisok {struct spisok* next; char *name;};
struct spisok* add(void);
void show(struct spisok*);

spisok *head=0,*cur=0,*prev=0;

using namespace std;

int main()
{
    for(int i=0;i<3;i++){
        if(cur) prev=cur;
        cur = add();
        if(!head) head=cur;
    }
    show(head);

    system("PAUSE");
    cout << "Hello world!" << endl;
    return 0;
}

spisok* add(void)
{
       char c, str[255];
       spisok* s=0;
       if(!s)
        s = (spisok*)malloc(sizeof(spisok));
if(prev) prev->next=s;
       s->next = NULL;
       printf("Input string:> ");
       scanf("%s",&s->name);


       return s;
}

void show(spisok* p)
{
       while(p != NULL)
       {
            printf("\n%s", p->name);
            p = p->next;
       }
       printf("\n");
}
I'm learning to live...

Последний раз редактировалось Stilet; 23.11.2013 в 13:45.
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 20:00   #3
Алексей21357
Новичок
Джуниор
 
Регистрация: 23.11.2013
Сообщений: 2
По умолчанию

Подстроил код под С. Но при запуске падает...(
Алексей21357 вне форума Ответить с цитированием
Старый 23.11.2013, 21:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Проведи отладку. Я с головы брал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели, работа с динамическими структурами данных hitman1316 Паскаль, Turbo Pascal, PascalABC.NET 7 11.12.2012 09:18
Работа с динамическими структурами данных (Delphi) morkow_mr Фриланс 7 20.09.2012 18:28
РАБОТА С ДИНАМИЧЕСКИМИ СТРУКТУРАМИ ДАННЫХ keyonex Помощь студентам 6 12.12.2011 19:22
Работа с динамическими структурами... найдите ошибку (паскаль) lblondy Помощь студентам 4 24.05.2011 22:38