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

Не выводится содержимое динамического списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подключение заголовков http://www.cyberforum.ru/cpp-beginners/thread670831.html
Доброго времени суток. Как подключить заголовок, в котором используется данный заголовок? (Возможно ли?) Например: Class1.h #ifndef CLASS1_H #define CLASS1_H #include "Class2.h"
C++ Найти ошибку в ф-ии, вычисляющей arctg(x) через разложение в ряд Доброго времени суток. Нужно вычислить arctg(x) при x>1. Вот код #include<iostream> #include<cmath> #include<conio.h> using namespace std; void atan_x(double x, double eps); int main() http://www.cyberforum.ru/cpp-beginners/thread670828.html
C++ Вычисление минимального времени по расписанию движения электричек
Помогите решить задачу. Не могу реализовать. Задача: N (2 <= N <= 100), E (2 <= E <= N), M (0 <= M <= 100). N - количество станций; Е - станция на которую нужно добраться; M - число рейсов электричек. Далее идут M строк: Описание каждого рейса электрички начинается с числа Ki (2 <= Ki <= N) — количества станций, на которых она останавливается, а далее следует Ki пар чисел, первое число...
C++ Дружественная функция
описать классы автомобиль и маршрут. Использовать дружественную функцию определить количество потраченного топлива и время на преодоление данного маршрута автомобиля
C++ Вычисление вероятности затопления авианосца http://www.cyberforum.ru/cpp-beginners/thread670778.html
Всем доброго время суток. Группа из n подводных лодок атакует авианосец. Лодки по очереди выпускают по одной торпеде с ядерным зарядом: если выпущенная лодкой торпеда не попала в авианосец, торпеду выпускает следующая подводная лодка. Вероятность попадания торпеды в авианосец равна p. выпуская торпеду, лодка демаскирует себя, в силу чего подвергается атаке со стороны кораблей охранения....
C++ Код, приведеном в книге "С++ за 21 дней. Либерти Джесс" не работает Здравствуйте. Я новичок в деле программировании, так что, пожалуйста, относитесь ко мне к пониманию. Купил книгу "С++ Освой самостоятельно за 21 день" автора Либерти Джесс. Дошел до 8 раздела, в котором требовалось написать программу, выполняющее деление двух чисел, и возникла проблема. Вроде бы все правильно ввел, но не работает. Работаю в среде "Code::Blocks", может в нем проблема? Запускаю код... подробнее

Показать сообщение отдельно
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
16.10.2012, 15:17     Не выводится содержимое динамического списка
lexflax, оно еще и непрактично тем, что в структуре содержится 3 переменных одинакового типа, а Вы их используете для одного и того же: для заполнения, а потом для вывода. Не проще ли в таком случае завести 1 переменную типа string и добавлять очередной элемент только в нее. Например, в цикле 1-10 можно добавить сразу 10 элементов только через одну функцию. И выводить тоже через одну. Так намного удобней и проще.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include <tchar.h>
#include <string>
//---------------------------------------------------------------------------
#include <conio.h>
struct lfile
{
 string data;
 lfile*next;
}*start,*p,*q;
 
void add(string a)
{ 
 p = new lfile;
 p->data=a;
 p->next = start;
 start = p;
}
 
void new_element(string a)
{
 lfile *q;
 q = new lfile;
 q->data=a;
 q->next = p->next;
 p->next = q;
}
 
void print()
{
 cout<<endl;
 while (start)
  {
   cout<<start->data<<endl;
   start=start->next;
  }
}
 
int main()
{
 setlocale(LC_ALL, "rus");
 string a;
 cout<<"Vvedite znachenie pervogo elementa v sozdavaemom spiske: ";
 for (int i=0; i<3; i++)
  {
   cin>>a;
   add(a);
  }
 print();
 cout<<"dobavit eshe element: ";
 for (int i=0; i<3; i++)
  {
   cin>>a;
   add(a);
  }
 print();
 getch();
 return 0;
}
И, да: была ошибка в первой функции: p->next = NULL;
Указатель на следующий элемент должен указывать на start. А Вы и не заметили, потому что выводили только первые добавленные элементы. От этого сути в списке никакой.
 
Текущее время: 19:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru