![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.11.2016
Сообщений: 18
|
![]()
Помогите найти ошибку.
Создать список, который содержит информацию о пользователях водопроводом (поля: фамилия, адрес, задолженность). Проверить список на наличие клиентов, долг которых превышает некоторый минимум. Вывести эти записи на экран и исключить из списка. #include "stdafx.h" #include "windows.h" #include "iostream" #include "string.h" #include "stdlib.h" typedef struct elem { char familia[20]; char adress[20]; int dolg; struct elem * next; } element; typedef element * ptr; ptr InsertV(ptr h, char * s, char * p, int dl); void DrucSpisok(ptr h); ptr DelElementV(ptr h); ptr DelElementS(ptr h); ptr DelSpisok(ptr h); void DrucSpisokDel(ptr h); int _tmain(int argc, _TCHAR* argv[]) { setlocale (LC_ALL,"RUS"); int min; element z; ptr head, current; head = NULL; printf ("Введите min: "); scanf("%d", &min); printf ("Введите данные о клиентах в список. Последняя фамилия - #\n"); fflush(stdin); printf ("Введите фамилию: "); gets(z.familia); printf ("Введите адрес: "); gets(z.adress); while (strcmp(z.familia, "#")!=0) { printf ("Введите долг: "); scanf("%d", &(z.dolg)); head = InsertV(head, z.familia, z.adress, z.dolg); fflush(stdin); printf ("Введите фамилию: "); gets(z.familia); printf ("Введите адрес: "); gets(z.adress); } printf ("Вывод созданного списка\n"); DrucSpisok(head); printf ("Вывод списка клиентов долг которых превышает min\n"); head = DelSpisok(head); if (head != NULL) { printf ("Список клиентов долг которых не превышает min\n"); DrucSpisokDel(head); } else printf ("Клиентов долг которых не превышает min нет\n"); system("pause"); return 0; } //------------------------------------------------------------------------------------------------------------------- ptr InsertV(ptr h, char * s, char * p, int dl) { ptr x; x=(ptr) malloc(sizeof(element)); strcpy(x->familia, s); strcpy(x->adress, s); x->dolg=dl; x->next = h; h = x; return h; } //------------------------------------------------------------------------------------------------------------------- void DrucSpisok(ptr h) { ptr x; x=h; while (x != NULL) { printf ("%25s%25s%10d\n", x->familia, x->adress, x->dolg); x = x->next; } } //------------------------------------------------------------------------------------------------------------------- ptr DelElementV(ptr h) { ptr x; x = h; h = h->next; free(x); return h; } //------------------------------------------------------------------------------------------------------------------- ptr DelElementS(ptr h) { ptr x; x = h->next; h->next = h->next->next; free(x); return h; } //------------------------------------------------------------------------------------------------------------------- ptr DelSpisok(ptr h) { ptr x; int min; while (h->dolg>min) { printf ("%25s%25s%10d\n", h->familia, h->adress, h->dolg); h = DelElementV(h); } if (h != NULL) { x = h; while (x->next != NULL) if (x->next->dolg>min) { printf ("%25s%25s%10d\n", x->next->familia, x->next->adress, x->next->dolg); x = DelElementS(x); } else x = x->next; } return h; } //------------------------------------------------------------------------------------------------------------------- void DrucSpisokDel(ptr h) { while (h != NULL) { printf ("%25s%25s%10d\n", h->familia, h->adress, h->dolg); h = DelElementV(h); } } |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
![]()
И что у тебя?
Проблема в чём? |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 28.11.2016
Сообщений: 18
|
![]()
не выводит людей у которых превышает min, а если точнее, то начинается отладка
Последний раз редактировалось Olaa; 27.05.2017 в 00:10. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
![]()
Скриншот покажи: что пишет, какая ошибка, в каком месте.
Ты умеешь делать скрины экрана? И ещё вопрос: какой у тебя список? Кольцевой, двунаправленный... |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
![]()
Заснул, что ли?
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
![]()
Тогда вопрос по-проще, а какие вообще бывают списки?
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Внимательно смотрим, где падает:
Код:
Код:
Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 28.11.2016
Сообщений: 18
|
![]()
не совсем понимаю как правильно
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с++ . Вывести данные о пластинках, тираж которых превышает 10000 экземпляров. | Cicadaa | Помощь студентам | 3 | 04.04.2017 13:02 |
создать линейный список и проверить наличие в данном списке заданного элемента | Делька | Помощь студентам | 0 | 02.06.2015 21:19 |
Подсчитать количество слов, длина которых не превышает заданного числа n. | Dikins | Общие вопросы C/C++ | 2 | 01.01.2015 22:11 |
Выбор строк,длина которых превышает заданную | Dell2dimka | Помощь студентам | 12 | 26.01.2010 13:07 |