Тема: Зневадження програми формування списків*
Сформувати односпрямований список з ланкою-заголовком і видалити дві наступні літери після літери "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
Для відправлення відповіді ви повинні увійти або зареєструватися