проверте програму

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

  1. kaffein

    kaffein Гость

    Всем доброго времени суток!
    вот создал програму про списки, ошибки при компиляции не выскакивают, но когда я иду на выполнение, в функциях происходят какие-то мистические вещи
    посмотрите пожалуйста и напишите как надо
    Код (C++):
    #include "stdafx.h"
    #include <time.h>
    #include "stdio.h"
    #include <stdlib.h>
    #include <string.h>
    #include <malloc.h>

    typedef struct maneg
    {
    char name [20];
    char secondname[20];
    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));
    if(!nov)
    printf("can not allocate memory");
    return nov;
    printf("vvedid dannue");
    scanf("%s,%s",&(nov->name),&(nov->secondname));
    nov->next=first;
    first=nov;
    return first;
    }
    list* poc(list* p)
    {
    list*n=p;
    int i,sum=0;
    printf("nom pos");
    scanf("%i",&i);
    for(n;n->next;n=n->next)
    sum++;
    if(sum==i)
    return p;
    }
    list* per(list*p)
    {  list*n=p;
    if(p->next)p->next=p->prev;
    n->prev=n->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\n",&(wwe->name),&(wwe->secondname));
    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));

    }
    }
    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 kilkist\n");
    scanf("%d",&q);
    list *head = Add( NULL );
    for(list*p=head;q>1;q--)
    fill_list(head);
    list fx;
    list* r=dod(&fx);
    list* o=poc(&fx);
    list* s=per(&fx);
    list* z=dob(&fx);
    list* p=clear(&fx);
    print(head);

    int n, i, k,sum=0;
    printf("vvedit rozmir masuva\n");
    scanf("%d",&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;

    }
     
Загрузка...
Похожие Темы - проверте програму
  1. kira95
    Ответов:
    0
    Просмотров:
    1.038
  2. kira95
    Ответов:
    0
    Просмотров:
    1.032
  3. kira95
    Ответов:
    0
    Просмотров:
    937
  4. kira95
    Ответов:
    0
    Просмотров:
    834
  5. kira95
    Ответов:
    0
    Просмотров:
    870

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