Форум программистов, компьютерный форум CyberForum.ru

Как работает эта часть кода? - C++

Восстановить пароль Регистрация
 
Sveta_BezSveta
0 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 5
22.06.2013, 00:46     Как работает эта часть кода? #1
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
element *el, *n_el;
    int i;
    n_el = (element *)malloc(sizeof(element));
    printf("Vvedite FIO: ");
    scanf("%32s %32s %32s", &(n_el->surname), &(n_el->name), &(n_el->thirdname));
    printf("\nVvedite vozrast: ");
    scanf("%d", &(n_el->age));
    printf("\nVvedite pol (M/F): ");
    scanf("\n%c", &(n_el->sex));
    el = start;
    for(i = 0; i < (n-1); i++) {
        if(el != NULL)
            el = el->next;
        else
            return;
    }
    n_el->next = el->next;
    el->next = n_el;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
22.06.2013, 01:00     Как работает эта часть кода? #2
Суть задания: вставить элемент в конец списка,так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
element *el, *n_el; // есть два указателя на структуру element
int i;
n_el = (element *)malloc(sizeof(element)); // захватываете память под структуру element
 
// инициализируете поля структуры(память под которую захватили выше)
printf("Vvedite FIO: ");
scanf("%32s %32s %32s", &(n_el->surname), &(n_el->name), &(n_el->thirdname));
printf("\nVvedite vozrast: ");
scanf("%d", &(n_el->age));
printf("\nVvedite pol (M/F): ");
scanf("\n%c", &(n_el->sex));
el = start; // присваетеваете указателю el адрес переменной start(она не объявлена) Мне кажется это начало списка
 
// циклически смещаетесь к next элементу списка(хотите дойти до конца списка)
for(i = 0; i < (n-1); i++)
{
     if(el != NULL) // если не NULL(конец списка)
          el = el->next; // смещение к след элементу
     else
       return; // return здесь явно лишний
}
// здесь вы наверное ходите вставить ваш введенные элемент в конец списка? если да - то
n_el->next = el->next;  // это лишнее, и условие должно быть пока el->next != NULL
el->next = n_el;
Sveta_BezSveta
0 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 5
22.06.2013, 01:06  [ТС]     Как работает эта часть кода? #3
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
Суть задания: вставить элемент в конец списка,так?
сказать точно не могу, так как я сама пытаюсь понять суть этого кода
вот код целиком:
http://pastebin.com/s4NGVW0G

Добавлено через 1 минуту
Мне просто надо узнать, что делает этот фрагмент кода(
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
22.06.2013, 01:18     Как работает эта часть кода? #4
@Sveta_BezSveta, Вы бы всю функцию кидали - в ней мы подаем первый элемент списка (start). И размер списка (n). циклом до n-1 доходим до последнего элемента списка и добавляем в проинициализированный элемент в конец. Это если кратко. Компилировать нет времени - но попрожнему считаю что n_el->next = el->next; лишнее.
Sveta_BezSveta
0 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 5
22.06.2013, 01:22  [ТС]     Как работает эта часть кода? #5
Спасибо!
Компилировать не надо - это не столь важно, мне просто надо понять как работает функция, это получается добавление к конец списка элемента?
Yandex
Объявления
22.06.2013, 01:22     Как работает эта часть кода?
Ответ Создать тему
Опции темы

Текущее время: 07:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru