Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
artart96
-12 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 272
#1

При выводе стека выдает адреса ячеек, а не их содержимое, что не правильно? - C++

04.07.2015, 13:57. Просмотров 238. Ответов 5
Метки нет (Все метки)

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
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
#include <locale.h>
 
struct List{
    int data;
    List*next;
};
 
int kol = 0;//Переменная-счетчик для количества элементов в стеке 
 
int main()
{
    setlocale(LC_ALL,"rus");
    printf("Введите количество элементов в стеке:");
    scanf("%d",&kol);
    printf("\n");
    List *begin,*a;
    begin = new List;
    begin->next = NULL;
    a = begin;
    for(int i = 0;i<kol;i++)
    {
        printf("Введите элемент стека:");
        scanf("%d",&begin->data);
        begin = new List;
        begin->next = a;
        a = begin;
    }
    printf("Введенный стек:");
    List *print;
    print = begin;
    while(print->next !=NULL)
    {
        printf("%d",print->data);
        print = print->next;
    }
    printf("\n");
    return 0;
}
При выводе выдает адреса ячеек,а не их содержимое, что не правильно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2015, 13:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос При выводе стека выдает адреса ячеек, а не их содержимое, что не правильно? (C++):

Программа при выводе доп.информации выдает бред - C++
Блин сохраняет в файл только последний введенные в цикле данные Помогите,что может быть не так: #include &lt;iostream&gt; #include...

Почему при выводе односвязного списка на экран он выдаёт ещё какие-то дополнительные адреса? - C++
Здравствуйте, помогите пожалуйста разобраться, почему при выводе односвязного списка на экран он мне выдаёт ещё какие-то дополнительные...

Программа работает, но при выводе определенной комбинации выдает ошибку - C++
Помогите начинающему программисту :) Программа работает, но если ввести все непростые числа, то выдает ошибку &quot;поврежденная куча&quot;. Во всех...

Содержимое стека 2 дописать в содержимое стека 1. Напечатать полученный стек 1 - Pascal
Program stekk; type stecc=^st; st=record inf:real; link:stecc; end; var i:integer; top,top2,p,p2:stecc; begin

Правильно ли я понимаю, что XmlTextWriter весь получаемый текст при выводе транслирует в HTML-код? - .NET
Правильно ли я понимаю, что XmlTextWriter весь получаемый текст при выводе транслирует в HTML-код, т.е. &quot;&amp;&quot; заменяет на &quot;&amp;&quot; и...

Переполнение стека при выводе содержимого файла - C (СИ)
Программа считывает имя файла с входного потока, отображает содержимое файла по 5 симвоов, Не пойму, из-за чего переполнение стека? ...

5
Velesthau
524 / 426 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
04.07.2015, 14:33 #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
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <locale.h>
 
struct List
{
        int data;
        List* next;
};
 
int main()
{
    int kol = 0;
        setlocale(LC_ALL,"rus");
        printf("Введите количество элементов в стеке:");
        scanf("%d",&kol);
        printf("\n");
        List *head=NULL, *tail=NULL;
        for(int i = 0;i<kol;i++)
        {
        if(head==NULL)
            head = tail = new List;
        else
            tail = tail->next = new List;
        tail->next = NULL;
                printf("Введите элемент стека:");
                scanf("%d", &tail->data);
        }
        printf("Введенный стек:");
    for(List* current = head;current != NULL;current = current->next,delete head,head = current)
        printf("%d\n", current->data);
 
        return 0;
}
0
artart96
-12 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 272
04.07.2015, 14:37  [ТС] #3
А что у меня не так?
0
Velesthau
524 / 426 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
04.07.2015, 14:46 #4
Цитата Сообщение от artart96 Посмотреть сообщение
А что у меня не так?
последний элемент ты не вводишь, а сразу выходишь из цикла. Последний begin у тебя с мусором в data. Это не адреса.

Ты вызываешь ввод для data
C++
1
scanf("%d",&begin->data);
Потом создаешь новый элемент
C++
1
2
3
        begin = new List;
        begin->next = a;
        a = begin;
И если у тебя подошел к концу цикл, то
C++
1
scanf("%d",&begin->data);
для твоего нового begin не вызывается.

Добавлено через 48 секунд
Сделай вывод с символом новой строки:
Цитата Сообщение от artart96 Посмотреть сообщение
printf("%d\n",print->data);
а то ж нифига не понятно будет, что вообще выводится, все сольется.
1
artart96
-12 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 272
04.07.2015, 15:03  [ТС] #5
Цитата Сообщение от Velesthau Посмотреть сообщение
Сделай вывод с символом новой строки:
Сообщение от artart96
printf("%d\n",print->data);
а то ж нифига не понятно будет, что вообще выводится, все сольется.
Я нашел ошибку, создается последняя новая структура, но информационное поле этой структуры я не заполняю с клавиатуры, так как в цикл уже не могу войти,и в неё помешается какой-то мусор, поэтому выводится не то, что нужно.
0
Velesthau
04.07.2015, 15:25     При выводе стека выдает адреса ячеек, а не их содержимое, что не правильно?
  #6

Не по теме:

Цитата Сообщение от artart96 Посмотреть сообщение
Я нашел ошибку, создается последняя новая структура, но информационное поле этой структуры я не заполняю с клавиатуры, так как в цикл уже не могу войти,и в неё помешается какой-то мусор, поэтому выводится не то, что нужно.
Она выше прокомментированного сообщения и описана

0
04.07.2015, 15:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2015, 15:25
Привет! Вот еще темы с ответами:

ListBox выдает при выводе результата - C#
Спрашивал уже про этот уже код (http://www.cyberforum.ru/windows-forms/thread1540677.html). Теперь не понимаю, почему ListBox1 и 2 выдает...

При выводе цифр на консоль выдает не те цифры - C#
Вместо 2 вообще 50. Ввожу double x = Convert.ToDouble(Console.Read()); Console.WriteLine(x); Результат:

Задать формат ячеек Excel при выводе данных из DataGridView - Visual Basic .NET
Необходимо сделать текстовый формат всех ячеек в эксле перед выводом данных в него. Данные в эксель выводятся из DataGridView данные...

Почему выдает ошибку при выводе в мэмо запись? - C++ Builder
Memo1-&gt;Lines-&gt;Append(myways.way); struct TWayBits { String way; String positions; int weight; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru