Тема: Зневадження програми формування списків*
Сформувати односпрямований список з ланкою-заголовком і видалити дві наступні літери після літери "T". Вивести на друк обидва списки.
Допоможіть будь ласка! 
Я маю програму, яку потрібно відлагодити...
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Зневадження програми формування списків*
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Сформувати односпрямований список з ланкою-заголовком і видалити дві наступні літери після літери "T". Вивести на друк обидва списки.
Допоможіть будь ласка! 
Я маю програму, яку потрібно відлагодити...
Я маю програму, яку потрібно відлагодити...
Може тоді покажете код, який вже написано? 
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;
class NameDataSet
{
  public:
        char szName[130];
        NameDataSet* pNext;
};
// вказівник на перший запис
NameDataSet* pHead = 0;
NameDataSet* pNovy = 0;
// добавлення елемента в список
void add(NameDataSet* pNDS)
{
        pNDS->pNext = pHead;
        // заголовок указывает на новую запись
        pHead = pNDS;
}
//читаємо ім'я
NameDataSet* getData()
{
        char nameBuffer[130];
        cout << "\nVvedit bukvu:";
        cin  >> nameBuffer;
        
        // якщо вводимо "0" -то кінець
        if ((stricmp(nameBuffer, "0") == 0))
        {
                return 0;
        }
       NameDataSet* pNDS = new NameDataSet;
        strncpy(pNDS->szName, nameBuffer, 130);
        pNDS->szName[129] = '\0';
        pNDS->pNext = 0;
        // повернення адреси 
        return pNDS;
}
int main(int nNumberofArgs, char* pszArgs[])
{
        cout << "Vvid spusku\n"
                 << "'0' dlya vuhodu\n";
        // створення об'єкта NameDataSet
        NameDataSet* pNDS;
        while (pNDS = getData())
        {
                // добавлення в кінець списку
                add(pNDS);
        }
        cout << "Vuvid spusky:\n";
        pNDS = pHead;
        while(pNDS)
        {
                cout << pNDS->szName <<" ";
                pNDS = pNDS->pNext;
        }
 cout << "\n";
 pNDS = pHead;
        while(pNDS)
        {     
        if (stricmp(pNDS->szName, "t") == 0)
               {strcpy(pNDS->pNext->pNext->szName, "0");
               strcpy(pNDS->pNext->szName, "0");}
               pNDS = pNDS->pNext;
        }
        pNDS = pHead;
        while(pNDS)
        {       if (stricmp(pNDS->szName, "0") == 1)
              cout << pNDS->szName <<" ";
                pNDS = pNDS->pNext;
        }
 
        system("PAUSE");
        return 0; 
}Замість заповнення 0-ми щоб видаляло?
ні ми вводимо букви, а 0 для того щоб зупитнити ввід букв.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися