Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 15:50   #1
1Илья1
 
Регистрация: 06.04.2011
Сообщений: 9
Печаль По с++ коментарии

Сформировать список из натуральных чисел. Проверить наличие в списке заданного элемента..Программа выполняет это задание.Напишите коментарии на каком шаге что она делает:
#include<iostream.h>
#include<stdlib.h>
#include <conio.h>
struct cell {
char sign[10];
int weight;
struct cell *next;
};
void main ()
{
clrscr();
struct cell *tmp;
struct cell *head = NULL;
struct cell *ends = NULL;
cout << "Vvedite chisla konec 0:\n";
do
{
tmp = new struct cell;
cin >> tmp -> sign;
cin >> tmp -> weight;
if (tmp -> weight == 0)
{
delete tmp;
break;
};
if (head == NULL && ends == NULL)
head = tmp;
else
ends -> next = tmp;
ends = tmp;
ends -> next = NULL;
}
while (1);
cout << "Spisok:\n";
tmp = head;
while (tmp != NULL)
{
cout << tmp -> sign << " "<<tmp -> weight<<" ";
tmp = tmp -> next;
}
int n;
cout <<endl<< "vvedite chislo";
cin>> n;
tmp = head;
while (tmp != NULL)
{
if (tmp -> weight == n)
{
cout<< "takoy element estb v spiske!";
break;
}
else
{
tmp = tmp -> next;
if (tmp == NULL)
cout<<"takogo elementa v spiske nety!"; }
}
tmp = head;
while (tmp != NULL)
{
if (tmp == ends)
ends = tmp -> next;
head = tmp -> next;
delete tmp;
tmp = head;
}
getch ();
}

Последний раз редактировалось 1Илья1; 11.04.2011 в 18:48.
1Илья1 вне форума Ответить с цитированием
Старый 11.04.2011, 16:23   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Кому как не автору знать, что делает его программа?) И вы бы хотя бы отформатировали код и использовали тег код для улучшения его читаемости.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 11.04.2011 в 16:29.
Alex11223 вне форума Ответить с цитированием
Старый 11.04.2011, 16:35   #3
1Илья1
 
Регистрация: 06.04.2011
Сообщений: 9
По умолчанию

если бы автор знал, то не спрашивал бы)
1Илья1 вне форума Ответить с цитированием
Старый 11.04.2011, 16:39   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от 1Илья1 Посмотреть сообщение
если бы автор знал, то не спрашивал бы)
Вывод: автор топика и автор кода -- два разных человека -)

ЗЫ если добрых самаритян не найдется, откомментирую за оплату.
Аська под аватаром.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 11.04.2011, 17:43   #5
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Код:
//подключаем библиотеки
#include<iostream.h>
#include<stdlib.h>
#include <conio.h>
//создаем структуру cell
struct cell {
//с полями:
char sign[10];//sign - сигнал (строка)
int weight;//weight - вес (число)
struct cell *next;//next - указатель на следующую клеточку списка
};
void main ()//main - точка входа
{
clrscr();//очистили экран
//хотели создать указатели на начало и конец, списка и tmp, но зачем-то написали struct
struct cell *tmp;
struct cell *head = NULL;
struct cell *ends = NULL;
cout << "Vvedite chisla konec 0:\n";//выводим просьбу ввести числа
do//начинаем цикл с пост условием
{
//выделяем память теперь tmp будет указывать на не давно созданную клеточку
tmp = new struct cell;//но struct опять все портит
cin >> tmp -> sign;
//суем данные из входного потока в tmp -> sign
cin >> tmp -> weight;
//суем данные из входного потока в tmp -> sign
if (tmp -> weight == 0)//если вес ноль
{
delete tmp;//забираем выделенную память она уже не наша
break;//уходим из цикла
};//за чем точка с запятой ? в прочем она не мешает...
if (head == NULL && ends == NULL)//если список пуст
head = tmp;//суем tmp начало
else//а если не пуст
ends -> next = tmp;//говорим последнему элементу что отныне после него есть еще одна клетка, занимательно, то что в начале ends NULL
ends = tmp;//теперь наша клетка последняя
ends -> next = NULL;//логично что раз она последняя то после не ничего нет
}
while (1);//повторяем действия бесконечное количество раз пока не нас не выгонят из цикла(weight == 0)
cout << "Spisok:\n";//вы водим "Spisok:"  и переводим каретку
tmp = head;//приравниваем tmp head, интересно то что head->next ничего нет, те какой-то мусор
//цикл с пред условием
while (tmp != NULL)//пока указатель не равен нулю, те список не закончился
{
cout << tmp -> sign << " "<<tmp -> weight<<" ";//выводим сигнал и вес, не грех и \n дописать
tmp = tmp -> next;//переходим к следующему
}
int n;//объявляем переменную n
cout <<endl<< "vvedite chislo";//выводим на выводной поток vvedite chislo
cin>> n;//получаем данные из входного потока и суем в n
tmp = head;//приравниваем tmp head
while (tmp != NULL)//пока список не закончился исчем клетку с весом n
{
if (tmp -> weight == n)//если вес этой ячейки n - значит мы ее нашли 
{
cout<< "takoy element estb v spiske!";//пишем: "takoy element estb v spiske!"
break;//перестаем искать - выходим из цикла
}
else//а если вес этой ячейки не n
{
tmp = tmp -> next;//переходим к следующей
if (tmp == NULL)//если список кончился, то, говорим что нима такого
cout<<"takogo elementa v spiske nety!"; }
}
tmp = head;//приравниваем tmp head
while (tmp != NULL)//пока список не закончился
{
if (tmp == ends)//зачем?
ends = tmp -> next;// ?
head = tmp -> next;//голове новое значение
delete tmp;//отрубаем старую голову
tmp = head;//суем голову в tmp
}
getch ();//делаем задержку экрана
}
ps Mandrivnyk написать с нуля проще
pss ТС откуда ты это взял?
ololo-schoolboy вне форума Ответить с цитированием
Старый 11.04.2011, 17:51   #6
1Илья1
 
Регистрация: 06.04.2011
Сообщений: 9
По умолчанию

да замутил у пацана)))СПАСИБО большое)))
1Илья1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
коментарии к коду С++ dymych Помощь студентам 0 09.11.2010 16:35
Коментарии Darknes Общие вопросы C/C++ 1 25.09.2010 16:37
коментарии parovoz121 Помощь студентам 0 18.06.2010 13:44
коментарии shelest Помощь студентам 1 31.05.2010 18:33
Коментарии к программе savra Помощь студентам 4 13.01.2010 01:32