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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2010, 14:08   #1
Jasper92
Форумчанин
 
Аватар для Jasper92
 
Регистрация: 07.02.2009
Сообщений: 110
По умолчанию Список

Помогите исправить oшибку в функции Del_To_Data
Код:
#include "stdio.h"
#include "conio.h"
#include <string.h>
#include <iostream>

struct Cpisok
{
	int day;//День
	int month;//месяц
	int year;//год
	int num;//Кто звонит
	int kod;// Код города кому звонят
	int num2;//Кому звонят
	int prodol;//Длительность разговора в минут
	int sroch;//срочность
	int tarif; 
	Cpisok *Next;
}*First=NULL, *Now, *Last;

void ADD_To_End ()
{
	int Aday, Amonth, Ayear, Anum;
	int Akod, Anum2, Aprodol, Asroch;
	int Atarif, S=0;
	printf("Введите номер кто звонит  "); 
	scanf("%i",&Anum);
Data:
	printf("Введите дату (ДД.ММ.ГГГГ)  ");
	scanf("%i %i %i",&Aday,&Amonth, &Ayear);
	if ((Aday<=31)&&(Amonth<=12)) S++; else {printf ("Неверная дата. Введите заново\n"); goto Data;}
	printf("Введите код города ");
	scanf("%i",&Akod);
	printf("Введите номер кому звонят  "); 
	scanf("%i",&Anum2);
	printf("Введите продолжительность разговора  "); 
	scanf("%i",&Aprodol);
	printf("Введите срочность (1 Срочный 2 Обычный)  ");
	scanf("%i",&Asroch);
	printf("Введите стоимость (Одной минуты разговора)  ");
	scanf("%i",&Atarif);
	printf ("\n");
	Now=First;
	if (First==NULL) //Добавление В начало
	{
		First=((struct Cpisok*)malloc(sizeof(struct Cpisok))); 
		First->Next=NULL;
		First->day=Aday;
		First->month=Amonth;
		First->year=Ayear;
		First->num=Anum;
		First->kod=Akod;
		First->num2=Anum2;
		First->prodol=Aprodol;
		First->sroch=Asroch;
		First->tarif=Atarif;
	}
	else //Добавление В Конец
	{
		while (Now->Next!=NULL)
		{
			Now=Now->Next;
		};
		Now->Next=((struct Cpisok*)malloc(sizeof(struct Cpisok)));
		Now->Next->Next=NULL;
		Now->Next->day=Aday;
		Now->Next->month=Amonth;
		Now->Next->year=Ayear;
		Now->Next->num=Anum;
		Now->Next->kod=Akod;
		Now->Next->num2=Anum2;
		Now->Next->prodol=Aprodol;
		Now->Next->sroch=Asroch;
		Now->Next->tarif=Atarif;
	}
};
void Poisk ()
{
	int Ssroch, S=0;
	printf ("Введите срочность (для поиска)");
	scanf ("%i",&Ssroch);
	if (First==NULL) printf ("Список пуст ");
	else
	{	
		Now=First;
		while (Now!=NULL) 
		{
			if (Now->sroch==Ssroch) 
			{
				S++;
				printf ("\n");
				printf ("=============Ответ============\n");
				printf ("Номер кто звонит %i\n",Now->num);
				printf ("Дата %i ",Now->day);
				printf ("Месяц %i ",Now->month);
				printf ("Год %i \n",Now->year); 
				printf ("Код города %i\n",Now->kod);
				printf ("Номер кому звонят %i\n",Now->num2);
				printf ("Продолжительность разговора %i\n",Now->prodol); 
				printf ("Срочность %i\n",Now->sroch);
				printf ("Стоимость (Одной минуты разговора) %i",Now->tarif);
			}
			Now=Now->Next;
		}
		if (S==0) printf ("Нет звонков удовлетворяюшей данной срочностью");
		else S=0;
	}
}
void Del_To_Data ()
{
	int Dday, Dyear, Dmonth;
	struct Cpisok *Key;
	printf ("Введите дату (ДД.ММ.ГГГГ)");
	scanf ("%i %i %i",&Dday, &Dmonth, &Dyear);
	if (First==NULL) printf ("Список пуст");
	else 
	{
		Now=First;
		Last=NULL;
		while (Now!=NULL)
		{
			if ((Now->day==Dday)&&(Now->month==Dmonth)&&(Now->year==Dyear))
			{
				if (Now==First) 
				{
					Last=First->Next;
					free(Now);
					First=Last;
					Now=NULL;
				}
				else
				{
					Key=Now;
					Last=Now->Next;
					free(Key);
					Key=NULL;
				}
			}
			else 
			{
				Last=Now;
				Now=Now->Next;
			}
		}
	}
}
void Printf ()
{
	if (First==NULL) printf ("Список пуст"); 
	else
	{
		Now=First;
		while (Now!=NULL) 
		{
			printf ("\n");
			printf ("=============Ответ============\n");
			printf ("Номер кто звонит %i\n",Now->num);
			printf ("Дата %i ",Now->day);
			printf ("Месяц %i ",Now->month);
			printf ("Год %i \n",Now->year); 
			printf ("Код города %i\n",Now->kod);
			printf ("Номер кому звонят %i\n",Now->num2);
			printf ("Продолжительность разговора %i\n",Now->prodol); 
			printf ("Срочность %i\n",Now->sroch);
			printf ("Стоимость (Одной минуты разговора) %i",Now->tarif);
			Now=Now->Next;
		}
	}
}
void main ()
{
	int Com;
	setlocale( LC_ALL,"Russian" );
Zanovo:
	printf ("Добовать <1> Поиск <2> Удалить по Дате <3> Вывод <4> ");
	scanf ("%i",&Com);
	switch (Com)
	{
	case 1: ADD_To_End (); Com=0;break;
	case 2: Poisk ();      Com=0 ;break;
	case 3: Del_To_Data ();Com=0 ;break;
	case 4: Printf ();     Com=0 ;break;
defaunt: printf ("Ты ДЕБИЛ!!!! НАУЧИСЬ ЧИТАТЬ!!!");
}
	goto Zanovo;
	getch ();
}
Jasper92 вне форума Ответить с цитированием
Старый 06.05.2010, 14:42   #2
Neurogenus
Заблокирован
 
Регистрация: 05.05.2010
Сообщений: 40
По умолчанию

Код:
defaunt: printf ("Ты ДЕБИЛ!!!! НАУЧИСЬ ЧИТАТЬ!!!");
- ну что же вы так не гуманны к юзеру то(?)
Neurogenus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список на Си Annenen Помощь студентам 21 20.12.2010 18:54
список maner0k Паскаль, Turbo Pascal, PascalABC.NET 3 16.06.2009 23:55
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43