Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Задача с односвязным и двухсвязным списком (сортировка). - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ заменить каждую точку многоточием http://www.cyberforum.ru/cpp-beginners/thread376160.html
Здравствуйте, помогите решить задачу с массивами и строками. Тема:массивы и строки. "В предложении заменить каждую точку многоточием."
C++ Определить номера строк прямоугольной матрицы, содержащие только отрицательные элементы. Здравствуйте, помогите решить задачу с массивами и строками. Тема: Массивы и Строки. Определить номера строк прямоугольной матрицы, содержащие только отрицательные элементы. http://www.cyberforum.ru/cpp-beginners/thread376159.html
C++ Помогите пожалуйста Сколько раз в тексте встречается каждое слово? на Cи
Помогите пожалуйста Сколько раз в тексте встречается каждое слово? на Cи
C++ list iterator template
пишу в хэдере #include <list> using namespace std; template <class T> struct Transition { list<T>::iterator it; }; ошибки при компиляции
C++ Помогите пожалуйста Сколько раз в тексте встречается каждое слово на Cи http://www.cyberforum.ru/cpp-beginners/thread376145.html
Помогите пожалуйста Сколько раз в тексте встречается каждое слово? на Cи
C++ вывод строки в определённом месте кто знает как выводить текст в определённом месте fseek(stdout,...) не пойдёт в данном случае нельзя приминить Добавлено через 12 минут ребят но на бейсике есть на win Api есть неужели на с нет подробнее

Показать сообщение отдельно
Hellraiserrr
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 24
17.12.2011, 18:14  [ТС]
Написал функцию сортировки, но она замещает все записи, т.е. выводится только ново вводимая.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/**/
 
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include<iostream>
struct ListBook
{char izd[50];                                                      //Издание
 char vid[50];                                                 //журнал или газета
 char cena[20];                                                      //цена
 struct ListBook *next;                                             //указание на следующую структуру
};
typedef struct ListBook listnode;
typedef listnode *listnodeptr;
 
void insert(listnodeptr *,char[50],char[50],char[20]);
struct ListBook *create(void);                                      //функция создания списка (возвращает адрес его головы)
void list(ListBook *head);                                          // функция просмотра списка
struct ListBook *head;                                              // глобальная переменная, адрес головы списка
int main()
{  listnodeptr startptr=NULL;
    char item1[50],item2[50],item3[20];
    setlocale(0,"");
   head=create();
   list(head);
   printf("\nВведите дополнительную запись\n");
      printf("Введите название издания "); scanf("%s", item1);
        printf("Введите газета или журнал "); scanf("%s", item2);
        printf("Введите цену экземпляра "); scanf("%s", item3);
        insert(&startptr,item1,item2,item3);
        head=(ListBook *)malloc(sizeof(ListBook));
        list(startptr);
   free(head);
}
struct ListBook * create(void)
{  ListBook *p, *pred;
   char c;                                                         // pred – указатель на предыдущую структуру
   head=pred=p=(ListBook *)malloc(sizeof(ListBook));               //выделяем память для первой записи
   printf("Введите название издания "); scanf("%s", p->izd);
        printf("Введите газета или журнал "); scanf("%s", p->vid);
        printf("Введите цену экземпляра "); scanf("%s", p->cena);
   do { p=(ListBook *)malloc(sizeof(ListBook));
        printf("Введите название издания "); scanf("%s", p->izd);
        printf("Введите газета или журнал "); scanf("%s", p->vid);
        printf("Введите цену экземпляра "); scanf("%s", p->cena);
        pred->next=p; //ссылка из предыдущей записи на текущую
        pred=p; // сохранение адреса текущей записи в поле предыдущей
        printf(" Закончить? y/n  ");
        c=getch();
       } while (c!='y');
   p->next=NULL;
   return head;
}
void list(ListBook *head)
{  ListBook *p;
   p=head;
   while (p!=NULL) 
   {  printf("\n  Название издания: %s",p->izd);
      printf("\n  Газета или журнал: %s",p->vid);
      printf("\n  Цена экземпляра: %s",p->cena);
      p=p->next; 
   }
   getch();
}
 
 
void insert(listnodeptr *sptr, char value1[50], char value2[50], char value3[20])
{
   listnodeptr newptr,previousptr,currentptr;
newptr=(ListBook *)malloc(sizeof(ListBook));
if(newptr!=NULL)
{
    strcpy(newptr->izd,value1);
    strcpy(newptr->vid,value2);
    strcpy(newptr->cena,value3);
    newptr->next=NULL;
    previousptr=NULL;
    currentptr=*sptr;
    while (currentptr!=NULL && value1[0]>currentptr->izd[0])
    {
        previousptr=currentptr;
    currentptr=currentptr->next;
    }
if (previousptr==NULL)
    {
        newptr->next=*sptr;
        *sptr=newptr;
    }
else 
    {
        previousptr->next=newptr;
        newptr->next=currentptr;
    }
 
}
    
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru