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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2010, 10:17   #1
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию СИ. Списки. Описание структуры односвязного списка

Подскажите, пожалуйста. Задача:состав парка ЭВМ вычислительного центра с разбивкой ЭВМ по сериям. Количество серий и ЭВМ разных серий переменны. Я объвила структура таким образом как представлена ниже. Но как мне кажется структура по условию задачи должна быть другой (возможно структура в структуре). Напишите, пожалуйста, какой на ваш взгляд должна быть структура, согласно, условию задачи. Спасибо.

typedef struct evm
{char name[20];
char pam[10];
evm *next;
} evm;

evm *first=NULL, *p;
int n,k;
void vvod()
{printf("vvedite kol-vo serii ");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("vvedite kol-vo EVM serii ");
scanf("%d",&k);
for(int j=0;j<k;j++)
{p=(evm *)malloc(sizeof(evm));
printf("vvedite seriu ");
scanf("%s",p->name);
printf("vvedite pamyat ");
scanf("%s",p->pam);
p->next=first;
first=p;
}
}
}
Jane-sad вне форума Ответить с цитированием
Старый 07.05.2010, 10:38   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Код:

typedef struct evm
{
 char pam[10];
 evm *next; 
};

typedef struct series
{
 char name[20];
 series *next; 
 evm * FirstEVMOfSeries;
};
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 07.05.2010, 10:44   #3
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию

Спасибо огромное. час попробую изменить заполнение списка, согласно новой структуре.
Jane-sad вне форума Ответить с цитированием
Старый 07.05.2010, 11:06   #4
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию

А вы не могли бы мне помочь исправить заполнение списка, согласно, новой структуры. Спасибо.
Jane-sad вне форума Ответить с цитированием
Старый 07.05.2010, 12:28   #5
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Код:
#include <stdio.h>
#include <alloc.h>

struct evm
{
 char pam[10];
 evm *next;
};

struct series
{
 char name[20];
 series *next;
 evm * FirstEVMOfSeries;
};

series *FirstSeries;

void main()
{
 int n,k;
 int kolvo;
 evm *CurrentEVM,*PreviousEVM;
 series *CurrentSeries,*PreviousSeries;

 PreviousSeries = NULL;
 printf("vvedite kol-vo serii : ");
 scanf("%d",&n);
 for(int i=0;i<n;i++)
 {
  CurrentSeries =(series *)malloc(sizeof(series));
  printf("vvedite nazvanie serii %d : ",i);
  scanf("%s",CurrentSeries->name);
  CurrentSeries->next = PreviousSeries;
  PreviousSeries = CurrentSeries;
  printf("vvedite kolichestvo EVM v series %s : ",CurrentSeries->name);
  scanf("%d",&kolvo);
  PreviousEVM = NULL;
  for(int j=0;j<kolvo;j++)
  {
   CurrentEVM =(evm *)malloc(sizeof(evm));
   printf("vvedite pamiat of EVM %d of series %d : ",j,i);
   scanf("%s",CurrentEVM->pam);
   CurrentEVM->next = PreviousEVM;
   PreviousEVM = CurrentEVM;
  }
  CurrentSeries->FirstEVMOfSeries = CurrentEVM;
 }
 FirstSeries = CurrentSeries;

 // Output
 printf("\nPark of EVM\n");
 CurrentSeries = FirstSeries;
 while ( CurrentSeries != NULL )
 {
  printf("Series : %s\n",CurrentSeries->name);
  CurrentEVM = CurrentSeries->FirstEVMOfSeries;
  while ( CurrentEVM != NULL )
  {
   printf("Series : %s , EVM : %s\n",CurrentSeries->name,CurrentEVM->pam);
   CurrentEVM = CurrentEVM->next;
  }
  CurrentSeries = CurrentSeries->next;
 }
 getchar();
}
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 07.05.2010, 14:25   #6
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию

Еще раз огромное спасибо. Смотрю на код и анализирую одновременно свой. Я немного не так реализовала. Но все равно приятно что помогаете.
Jane-sad вне форума Ответить с цитированием
Старый 17.05.2010, 12:24   #7
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию

Мне крайне неудобно просить о помощи. Но у меня нет выбора. И прошу помочь написать код удаления элемента из списка, описанной выше структуры. Я всю неделю пробовала но получается полная ерунда. Удаляется весь список либо ничего. Даже показывать код свой не хочу так как можете засмеять. Заранее спасибо.
Jane-sad вне форума Ответить с цитированием
Старый 17.05.2010, 12:29   #8
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Признаки удаляемого элемента?
Номер серии и память ?
Индекс в списке ?
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 17.05.2010, 12:44   #9
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию

Номер серии и память. Вы правы. Извините что сразу не написала.
Jane-sad вне форума Ответить с цитированием
Старый 17.05.2010, 14:40   #10
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Вот образец
Вложения
Тип файла: rar 1_1.rar (843 байт, 34 просмотров)
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мин. элемент. односвязного списка в СИ Sultan237 Общие вопросы C/C++ 0 22.03.2010 23:24
Сортировка односвязного списка btf Общие вопросы C/C++ 0 15.02.2010 14:40
[C++] Описание структуры TORT sasha20666 Помощь студентам 3 31.10.2009 17:52
Описание Маски доступа списка ACL Stilet Общие вопросы по программированию, компьютерный форум 0 20.07.2009 12:13
Cортировка односвязного списка alesfoss Общие вопросы C/C++ 3 30.03.2009 19:46