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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2008, 20:51   #1
Stark[SG!]
Пользователь
 
Регистрация: 20.02.2007
Сообщений: 12
Вопрос Список структуры (типа база) почему неработает ???

почему не работает все с учебника списал ))) подбельский
-------------------------------------
Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct team
       {
       char         name[20];
       char         city[20];
       int       count_games;
       char        L_W_T[10];
       int           players;
       struct team *prior;
       struct team *next;
       } st[100]; //opredelen massiv structur;
const int M=100;
struct control
           {
           int nb;
           int nf;
           struct team *bbeg;
           struct team *bend;
           struct team *fbeg;
           struct team *fend;
           } ctrl;
int init (void);
int input(void);
int save (void);
//////////////MAIN//////////////////////////////////
void main(void)
{
char numb[10];
while(1)
    {
    printf("1 - Add NEW team\n");
    printf("2 - Save in file\n");
    printf("3 - Init\n");
    printf("4 - Exit\n");
    scanf("%s",numb);
switch(numb[0])
           {
           case '1':input(); break;
           case '2':save();  break;
           case '3':init();  break;
           case '4':return;
           default: printf("Input only 1-4\n");
           }
    }
}
////////////////////////////////////////////////////////////////////////////
int init(void)
          {
          struct team *point=st; //ukazatel na tek element
          int i;
          ctrl.nb=0; //chislo zanytuch elementov
          ctrl.nf=0; //chislo  svobodn elementov
          ctrl.bbeg=NULL;
          ctrl.bend=NULL; //spiska zanyatyuch elementov net
          ctrl.fbeg=st;   //adres nachala massiva struct
          ctrl.fend=st;
          point=st;
          //printf("\n\n Init\n");
          for (i=0;i<M-1;i++)
                {
                if (ctrl.nf!=0) //ne perv element
                   {
                   point->prior=point-1;
                   point->next=point+1;
                   }
                else //perv element
                   {
                   point->prior=NULL;
                   point->next=point+1;
                   }
                   point++;
                   ctrl.nf++;
                   ctrl.fend++;
                } //conec cikla init (M-1) elementov massiva
          //Init poslednego elementa v massive
          ctrl.nf++;
          point->prior=point-1;
          point->next=NULL;
          return 0;
          }
////////////////////////////////////////////////////////////////////////////
int input(void)
           {
           struct team *fbeg;
           struct team *ptr; //vspomagateln ukazatel
           if (ctrl.nf==0) return -1;
           ptr=fbeg;
           printf("Input the name of team:\n");
           scanf("%s",fbeg->name);
           printf("Input the city of team:\n");
           scanf("%s",ptr->city);
           printf("How many games played team?\n");
           scanf("%d",&ptr->count_games);
           printf("L-W-T\n");
           scanf("%s",ptr->L_W_T);
           printf("How many players in team?\n");
           scanf("%d", &ptr->players);
           //Podkluchenie elementa k spisku zanyatuch
           if (ctrl.nf==1) //zanimayem poslednee
          {
          ctrl.fbeg=NULL;
          ptr->next=NULL;
          ptr->prior=ctrl.bend;
          ctrl.bend->next=ptr;
          ctrl.bend=ptr;
          ctrl.fend=NULL;
          }
          else
              {
              if (ctrl.nb==0)
              ctrl.bbeg=ptr;
              ctrl.fbeg=ptr->next;
              ptr->next=NULL;
              ptr->prior=ctrl.bend;
              ctrl.bend->next=ptr;
              ctrl.bend=ptr;
              ctrl.fbeg->prior=NULL; //nov pervyu v spiske svobodn elementov
              }
              ctrl.nb++;
              ctrl.nf--;
              return 0;
           }
////////////////////////////////////////////////////////////////////////////
int save(void)
          {
          int i,k;
          struct team *ptr; //ukazatel na structuru tipa person
          char *c; //ukazatel na simvol
          int  *pti; //ukazatel na celoe
          FILE *fp;  //ukazatel na potok
          if ((fp=fopen("bd.txt","w"))==NULL)
          {perror("bd.txt"); return -1;}
          if (ctrl.nb==0) return -1;
          else
          {
          ptr=st;
          //zapis info
          pti=&ctrl.nb; //nachalo bloka upravl info
          c=(char *)pti;//nastroika ukazatelya
          //cikl vvoda upravl info
          for(i=0;i<sizeof(ctrl); i++)
          putc(*c++, fp);
          //cikl vvoda v fail vsego massiva struct
          c=(char *)ptr; //nastroika ukazatelya
          for(k=0;k<sizeof(st);k++)
          putc(*c++,fp);
          fclose(fp);
          return 0;
          }
          }
--------------------------------------------

moderator: Используйте тег <CODE>

Последний раз редактировалось merax; 15.05.2008 в 15:21.
Stark[SG!] вне форума Ответить с цитированием
Старый 15.05.2008, 15:25   #2
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

А где лог ошибок? Тепаты кончились тута.
merax вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Структуры Centyrion Общие вопросы C/C++ 4 06.05.2008 20:33
Структуры в С++ bloo[d] Помощь студентам 1 30.01.2008 22:27
Трабла с написанем проги (Неработает перегрузка) Asain-Asa Общие вопросы C/C++ 2 16.09.2007 18:00