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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 16:59   #1
bilochka
Пользователь
 
Регистрация: 10.02.2013
Сообщений: 12
По умолчанию односвязный список редактирование

код рабочий, все работает нормально, но вот редактирование хромает...
помогите разобраться в чем проблема...
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
typedef struct gms_t
{
    int data;   
    int temp_vozducha;  
    int temp_vodi;  
    int atm_davl;  
    struct gms_t* next;	
}gms;
typedef gms* pelem; 
pelem HEAD = NULL; 
int NN = 0; /
int N_MAX = 10; 
void atm_press (void);
pelem ad() 
{
   pelem neo = (pelem) malloc(sizeof(gms));
   if (HEAD == NULL)
   {
      HEAD = neo;
      neo->next = NULL;
   }
   else
   {
      neo->next = HEAD;
      HEAD = neo;
   }
   NN++;
   return neo;
}
void ed(pelem p) 
{
   gms dan;
   printf("Data: ");
   scanf("%d", &dan.data);
   printf("Temperatura vodi: ");
   scanf("%d", &dan.temp_vodi);
   printf("Temperatura vozducha: ");
   scanf("%d", &dan.temp_vozducha);
   printf("Atmosphere davlenie : ");
   scanf("%d", &dan.atm_davl);
   dan.next = p->next;
   *p = dan;
   system("cls");
}
void rd(pelem p) 
{
   int i;
   if (p)
   {
      for (i = 0; i < 80; i++)
      {
         printf("_");
      }
      printf("\n");
      printf("Data: %d\n", p->data);
      printf("Temperatura vodi: %d\n", p->temp_vodi);
      printf("Temperatura vozducha: %d\n", p->temp_vozducha);
      printf("Atmosphere davlenie: %d\n", p->atm_davl);
      for (i = 0; i < 80; i++)
      {
         printf("_");
      }
      printf("\n");
   }
}
pelem find(char obj_data[])  
{
   pelem p = HEAD;
   do
   {
      if (!strcmp(p->data, obj_data))
      {
         return p;
      }
      p = p->next;
   }
   while (p);
   printf("Ne naydenu\n");
   return p;
}
int main()
{
   char c;
   do
   {
      printf("Menu\n"
             "Count: %d/%d\n"
             "[1] add\n"
             "[2] list\n"
             "[3] edit\n"
			 "[0] exit\n"

             ">>", NN, N_MAX);
      c = getch();
      system("cls");
      if (c == '1') 
      {
         if (NN < N_MAX)
         {
            pelem p = ad();
            ed(p);
         }
         else
         {
            printf("List is full\n");
         }
      }
      if (c == '2') //???????? ??????
      {
         pelem p = HEAD;
         if (p == NULL)
         {
            printf("List is empty\n");
         }
         else
            while (p != NULL)
            {
               rd(p);
               p = p->next;
            }
      }
      if (c == '3')
      {
         char obj[40];
         printf("Edit object : ");
         scanf("%s", obj);
         if (HEAD)
         {
            pelem p = find(obj);
            if (p)
            {
               ed(p);
            }
         }
         else
         {
            printf("List is empty\n");
         }
      }
   while (c != '0');
   return 0;
}
bilochka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать односвязный список и вывести его на экран. Из этого списка создать новый список по указанному ниже правилу и новый список San111 Паскаль, Turbo Pascal, PascalABC.NET 1 15.05.2012 22:08
Необходимо реализовать классы, односвязный список для хранения целых чисел, односвязный список для хранен lineico Помощь студентам 2 09.05.2011 17:45
Односвязный список masha17 Общие вопросы C/C++ 1 09.12.2009 12:20
[C] Односвязный список Dieno Помощь студентам 2 19.10.2009 18:52
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52