списки

Тема в разделе "C/C++/C#", создана пользователем kaffein, 21 фев 2011.

Наш партнер Genesis Hackspace
  1. kaffein

    kaffein Гость

    1. очистить список
    2.добавить елементи в конец списка
    3.получить указатель на и-тий елемент списка
    4. перестановка местами елементов списка
    5.вставить елемент в список перед вызначеным елементом
    6. печать елементов списка на екран
    Вот функции кажется прописал, но не знаю как в мейне все ето вызвать. И как список заполнить, он у меня вечный получился, исправте ошибки
    Код (C++):
    #include "stdafx.h"
    #include <time.h>
    #include "stdio.h"
    #include <stdlib.h>
    #include <string.h>

    typedef struct maneg
    {
    char name [20];
    char secondname[100];
    int age;
    maneg* next;
    maneg* prev;
    }list;
    list *clear( list*h )
    {
    if(!h) return NULL;
    list*n;
    for(n=h->next;n;n=n->next )
    {
    if(h) free(h);
    h=n;
    }
    if(h) free (h);
    return 0;
    }

    list* dod(list* first)
    {
    list* nov;
    nov = (list*) malloc(sizeof(list));
    printf("vvedid dannue");
    scanf("%s,%s,%i",nov->name,nov->secondname,nov->age);
    nov->next=first;
    first=nov;
    return first;
    }
    list* poc(list* p)
    {
    int i,sum=0;
    printf("nom pos");
    scanf("%i",&i);
    for( list*n=p;n->next;n=n->next)
    sum++;
    if(sum==i)
    return p;
    }
    list* per(list*p)
    {
    if(p->next)p->next=p->prev;
    p->prev=p->next;
    return p;
    }
    list* dob(list*vuzel)
    {
    list* n;
    n=(list*) malloc(sizeof(list));

    if(!vuzel) return n;
    if(vuzel->next) n->next=vuzel->next;
    vuzel->next=n;
    return n;
    }
    void print(list* first)
    {
    list*wwe;
    wwe=first;
    while(wwe)
    {
    printf("%s,%s,%i\n",wwe->name,wwe->secondname,wwe->age);
    wwe=wwe->next;

    }


    }
    void fill_list(list*p)
    {
    for(;p;p=p->next)
    {
    printf(" enter name of student\n");
    scanf("%s",p->name);
    printf("enter secondname of student\n");
    scanf("%s",p->secondname);
    printf(" enter age of student\n");
    scanf("%i",p->age);
    }
    }
    list *Add(list *p)
    {
    list *n = new list;
    memset( n, 0, sizeof(list) );
    if(!p) return n;

    n->next = p->next;
    p->next = n;
    n->prev = p;
    return n;
    }


    int main ()

    {  
    int q;       
    printf("vvedit q\n");
    scanf("%i",&q);
    list *head = Add( NULL );

    fill_list(head);

    int n, i, k,sum=0;
    printf("vvedit rozmir masuva\n");
    scanf("%i",&n);
    int *a=new int [n];
    srand(time(NULL));
    for (i=0; i<n; i++)
    a[i]=rand()%20; //заполнение массива случайными числами от 0 до 19

    for (k=0; k<n; k++)
    sum+=a[k];
    printf("sum=%i",sum);  
    delete [] a;
    return sum;

    }
     
  2. RiCrO

    RiCrO Гость

    Создавай структуру и используй оператор switch с его case. Делов то...
     
  3. kaffein

    kaffein Гость

    switch для заполнения списка, интересно ))))
    а можна на ето посмотреть и как вызвать все функции в мейне
     
  4. RiCrO

    RiCrO Гость

    Так тебе для main нужно или для списка? Определись... Список будет отдельно. В main помести структуру с вызовом функций.
     
  5. kaffein

    kaffein Гость

    мне нужно визвать все те функции в main
     
Загрузка...
Похожие Темы - списки
  1. gx6060
    Ответов:
    0
    Просмотров:
    361
  2. kingl
    Ответов:
    5
    Просмотров:
    2.289
  3. shilovec5377
    Ответов:
    0
    Просмотров:
    1.192
  4. lmike
    Ответов:
    1
    Просмотров:
    1.873
  5. DNT
    Ответов:
    8
    Просмотров:
    4.025

Поделиться этой страницей