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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2016, 13:23   #1
ilyakonst
Пользователь
 
Регистрация: 27.03.2016
Сообщений: 20
По умолчанию односвязный список. есть тип - перечисление. Так вот когда доходит очередь вводить его, прога вылетает.

Код:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <locale>
using namespace std;
enum palubb { A,B,C,D }; //перчисление
union ship2
{
	int repareC;
	char DateLastRepare[20];
};
struct ship
{
	char name[20];
	int year;
	palubb palub; // кол-во палуб(этажей)
	int info[2];  //кол-во экипажа и гостей
	bool repare;
	ship2 uni;
	ship *next;

};
void print(ship *b)
{
	ship *print = b;
	if(print == NULL) printf("Data Base is Empty\n");

	while (print)
	{
		printf("Название яхты - ");
		printf("%s",print->name);
		printf("Год спуска на воду - ");
		printf("%d", print->year);
		printf("Количество палуб - ");
		printf("%s", print->palub);
		printf("Людей в экипаже - ");
		printf("%d", print->info[0]);
		printf("Количество возможных гостей - ");
		printf("%s", print->info[0]);
		if (print->repare) printf("Стоимость ремонта - %d\n", print->uni.repareC);
		else
			printf("Дата последнего ремонта - %s\n", print->uni.DateLastRepare);
		print = print->next;
	}
	printf("\n");
}

void Insertt(ship **newship, ship **begin)
{
	if ((*newship) == NULL)
	{
		*newship = (ship*)malloc(sizeof(ship));
		*begin = *newship;
		(*begin)->next = NULL;
	}
	else
	{
		(*newship)->next = (ship*)malloc(sizeof(ship));
		*newship = (*newship)->next;
		(*newship)->next = NULL;
	}
	char pal = 0;
	char answer[10];
	printf("Информация о новой яхте:");
	printf("Название яхты - ");
	scanf("%s", (*newship)->name);
	printf("Год спуска на воду - ");
	scanf("%d", (*newship)->year);
	printf("Количество палуб - ");     //перечисление
	scanf("%c", &pal);
	((*newship)->palub) = (palubb)((int)pal);
	printf("Людей в экипаже - ");
	scanf("%d", &((*newship)->info[0]));
	printf("Количество возможных гостей - ");
	printf("%s", &((*newship)->info[1]));
	printf("Нужен ремонт?(yes или no)");
	scanf("%s", answer);
	if (!strcmp("yes", answer))
	{
		(*newship)->repare = (bool)1;
		printf("Сумма на ремонт - ");
		scanf("%d", &((*newship)->uni.repareC));
	}
	else
	{
		(*newship)->repare = (bool)0;
		printf("Дата последнего ремонта - ");
		scanf("%s", (*newship)->uni.DateLastRepare);
	}
}

int main()
{
	setlocale(LC_ALL, "RUSSIAN");
	ship *begin = NULL;	
	ship* end = begin;
	//Init(&begin);
	searchEnd(begin, &end);
	Insertt(&begin,&end);
	print(begin);
	_getch();
	return 0;
}
Идет вызов функции, которая позволяет заполнить список(insert). У меня есть тип - перечисление. Так вот когда доходит очередь вводить его, прога вылетает. Помогите разобраться


Используйте тег [CODE] (кнопка с решеткой в форме сообщения) для вставки кода на форум.

Последний раз редактировалось Alex11223; 06.04.2016 в 14:06.
ilyakonst вне форума Ответить с цитированием
Старый 06.04.2016, 14:09   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Где именно вылетает? Используйте отладчик для выяснения причины. Видимо что-то NULL или не инициализировано.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.04.2016, 14:31   #3
ilyakonst
Пользователь
 
Регистрация: 27.03.2016
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Где именно вылетает? Используйте отладчик для выяснения причины. Видимо что-то NULL или не инициализировано.
писал же: У меня есть тип - перечисление. Так вот когда доходит очередь вводить его, прога вылетает
ilyakonst вне форума Ответить с цитированием
Старый 07.04.2016, 16:51   #4
SuperTech
Новичок
Джуниор
 
Аватар для SuperTech
 
Регистрация: 07.04.2016
Сообщений: 8
По умолчанию

Используйте brakepoint
SuperTech вне форума Ответить с цитированием
Старый 07.04.2016, 18:27   #5
ilyakonst
Пользователь
 
Регистрация: 27.03.2016
Сообщений: 20
По умолчанию

Цитата:
Сообщение от SuperTech Посмотреть сообщение
Используйте brakepoint
можно поподробнее?
ilyakonst вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Односвязный линейный список типа очередь С++ Macheta Помощь студентам 10 24.03.2013 20:19
Создать односвязный список и вывести его на экран. Из этого списка создать новый список по указанному ниже правилу и новый список San111 Паскаль, Turbo Pascal, PascalABC.NET 1 15.05.2012 22:08
Необходимо реализовать классы, односвязный список для хранения целых чисел, односвязный список для хранен lineico Помощь студентам 2 09.05.2011 17:45
Односвязный список. Что то сним не так Djaconda Общие вопросы C/C++ 5 01.03.2009 15:46