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

Зацикливается стек - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перекодировка текста для вывода в окне http://www.cyberforum.ru/cpp-beginners/thread1210808.html
Здравствуйте. Помогите реализовать перекодировку текстового файла с помощью функций CharToOem() и OemToChar(). После открытия текстового файла в окне, нажатием на пункт меню нужно перекодировать текст в кодировку Dos (WM_MENU_DOS). Как это реализовать? Может быть кто подскажет литературу, где подробно расписано применение данных функций. #include "stdafx.h" #include "listing2_3.h"...
C++ Двумерные массивы. Количество отрицательных элементов. Седловые точки Задание такое: Дана целочисленная прямоугольная матрица. Определить: 1.количество отрицательных элементов в тех строках, которые содержат хотя бы один нулевой элемент; 2.номера строки и столбцов всех седловых точек матрицы. Примечание. Матрица A имеет седловую точку Aij, если Aij является минимальным элементом в i-й строке и максимальным в j-м столбце. Код ужасный и абсолютно не... http://www.cyberforum.ru/cpp-beginners/thread1210804.html
C++ Перегрузка оператора +
Вот заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include <iostream> using namespace std; template<typename T>
C++ Копиляция программы работы с COM портом
...доброго времени суток, уважаемые форумчане!... не могу понять, как "победить" эти ошибки (скрин-шот, а также проект - COM_1.rar прилагаются)... не связаны ли они с тем, что работаю в Visual Studio 2008, а не в 2010? ...исходник взят отсюда http://how2.org.ua/программирование/работа-с-com-портом-на-c-в-windows.html , а сама страница в архиве - Работа с COM портом на C++ в Windows _...
C++ Присваивание элементов двумерного массива другому двумерному массиву http://www.cyberforum.ru/cpp-beginners/thread1210746.html
нужно элементы одного двумерного массива присвоить другому. Вот программа. Но для одномерного массива она работает, если соответственно убрать второй индекс, а для двумерного нет. Подскажите,, в чем ошибка? # include <iostream> # include <conio.h> using namespace std; int main() { double a, b;
C++ Не могу понять в чем ошибка? #include <stdlib.h> #include <iostream.h> #include <conio.h> #include <graphics.h> #include <math.h> #include <process.h> int XMAX, YMAX, COLORMAX; double RATIO; подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
18.06.2014, 13:45     Зацикливается стек
вообще-то какой-то бред написан, словно код кусками из разных мест понатыкали!
C++
1
2
3
4
5
6
7
8
9
10
    Chuvak *ch=new Chuvak[n]; //массив из пяти структур. Зачем? Почему именно из пяти?
 
    strcpy( ch[0].name,"Pelevin");   //заполнение полей нулевого элемента массива. Зачем? А как же остальные?
    strcpy( ch[0].surname, "Vitek"); //это было какое-то упражнение на массивы? Ты массивы плохо знаешь что ли, что упражняться приходится?
 
    strcpy( ch[k-1].name,"Bulgakov");     //а почему тут ещё обращение по индексу к? что это за индекс? Его в цикле изменять что ли планировалось?
   strcpy( ch[k-1].surname, "Mishanya");  //пока что я вижу, что k  всегда равен 1
 
   mn.push(ch[k-1]);//О, да! Один из элементов запушили в очередь! А зачем сразу в очередь его не отправили? Зачем было создавать тут массив
//и вообще, при чём тут очередь (QUEUE) ? Ты же говорил, что стек делаешь!
и.т.д. и.т.п. вопросы по каждой строчке этого говнокода, который ты не сам писал, а отчасти откуда-то копировал!

ну и, как ещё одно подтверждение бреда, смотрим в код самой очереди:

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
void push(Chuvak ch1)
{
 
    Node *tmp = new Node;
    strcpy(tmp->ch.name,ch1.name);
    strcpy(tmp->ch.surname,ch1.surname);
 //   strcpy(tmp->ch.year,ch1.year);
    tmp->ch.name == ch1.name;
    tmp->ch.surname == ch1.surname;
    tmp->ch.year = ch1.year;        
 
    tmp->next = top;
    top=tmp;//добавление элемента ставим в top
 
    size ++;
 
}
 
 
void *pop()//       
{
    Node *pv = top;   //удаление элемента тоже из top
    top = top->next;
                 
         cout<<endl<<"Ty ubral ne togo parnya "<<endl<<pv->ch.surname<<") "<<pv->ch.name<<" "<<endl;
         size--;                
       delete pv;                    
}
по-твоему это очередь??? Это же стэк! Таки ты его делаешь? Почему сразу stack не назвал? Подозрения, что код был откуда-то стырен, а затем перепилен под стек из очереди всё сильнее подтверждаются...
И, кстати, что за тупой указатель возвращает твоя функция pop? void* ???

Теперь по теме. Насчёт ввода фамилии.
char s; Это по-твоему фамилия???
А вот это что? char *lessie[3]; Тоже фамилия?
Что за бредятину ты пишешь? Ты сначала язык изучи, а потом уже принимайся программировать! Хотя бы работу со строками изучи ДО того как будешь углубляться в дебри со списками и очередями!
Меня не покидает ощущение, что ты начал язык учить совсем недавно, но сразу же скакнул во всякую работу с классами, памятью и структурами типа очередей...
Зачем? Учиться надо по порядку, никто не гонит тебя никуда. Потрать год на последовательное изучение С++ с нуля... ну хоть полгода!
Никто тебя на второй год в школе не оставит за незданную задачку по программированию - изучай его самостоятельно!
 
Текущее время: 12:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru