Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Неправильно выводится значение максимального элемента строки https://www.cyberforum.ru/ c-beginners/ thread1958013.html
Подскажите пожалуйста , из за чего не выводит правильно значение максимального элемента строки int main () { int mas; int i,j,max,max_index; srand(time(NULL)); for(i=0;i<4;i++) { for(j=0;j<4;j++)
Задача на поиск символа из аргумента командной строки C (СИ)
Добрый день! решаю такую задачу:необходимо написать программу,которая принимает в качестве аргументов командной строки символ и файлы,и выводит сколько раз попадался данный символ в файлах.если файлов боьше одного то нужно последовательно открыть и искать там.если файлов нет,то программа использует стандартный ввод для текста, и ищет символ из аргумента.Не могу разобраться,как задать символ в...
C (СИ) Функция сортировки различных элементов С/С++ https://www.cyberforum.ru/ c-beginners/ thread1957959.html
Нужна помощь в реализации функции сортировки по различным полям структуры, в функцию сортировки должен передаваться указатель на функцию сравнения двух элементов. #include "stdafx.h" #include <stdio.h> #include <locale.h> #include <windows.h> #include <conio.h> #include <string.h>
C (СИ) Не выполняется сортировка массива https://www.cyberforum.ru/ c-beginners/ thread1957895.html
Здравствуйте , вот код, но сортировка в нем не применяется а просто выводиться массив чисел без применения сортировки. Подскажите в чем проблема пожалуйста. Спасибо! #include <conio.h> #include <stdio.h> #include <malloc.h> #include <clocale> #include <stdlib.h> #include <time.h> #include <cstdlib> ////////////////////////////////////////////////////////////////////////////////
C (СИ) Функция преобразования температуры из Фаренгейт в Цельсий
Прошу помочь разобраться в проблеме, возникающей при компилляции данной программы. #include <stdio.h> #define lower 0 //нижний температурный предел #define upper 300 // верхний температурный предел #define step 1 // шаг int convertion(int); // функция перевода из градусов фаренгейта в градусы цельсия int main()
C (СИ) Создать динамический массив из вещественных чисел и написать функции, выполняющие операции с этими числами Создать динамический массив, наполнить его вещественными числами и создать функции, выполняющие сортировку элементов массива (от наименьшего к наибольшему), map, where и конкатенацию. Только начал изучать С и от этого задания, мягко говоря, впал в ступор. Буду благодарен и рад любой помощи! https://www.cyberforum.ru/ c-beginners/ thread1957758.html
C (СИ) Как соединить 2 кода воедино или как хранить переменные в массиве? https://www.cyberforum.ru/ c-beginners/ thread1957757.html
Уважаемые форумчане, есть 2 кода, один умеет через меню выводить текст хранящийся в массиве(далее код1), а второй умеет получать текст с сайта(JSON) и выводить его(далее код2-получание, код3-вывод). Мне же нужно, чтобы код запускал меню, но потом в зависимости от выбранного пункта в нем, выводил переменную с полученным с сайта текстом. В каждом пункте меню будет свой текст. Я так понимаю в...
Написать программу решающую уравнение C (СИ)
Где-то ошибка, не могу понять. Когда ввожу 0 пишет не то. Думаю ошибки с If... например, когда ввожу а=0, б=5,с=-25 выводит Введите а 0 Введите b 5 Введите c -25 x=5,000000 x1=-1,#INF00 x2=-1,#INF00 аааа #include<stdio.h> #include<conio.h>
C (СИ) Решение квадратного уравнения Где-то ошибка, не могу понять. Когда ввожу 0 пишет не то. Думаю ошибки с If...:pardon: например, когда ввожу а=0, б=5,с=-25 выводит Введите а 0 Введите b 5 Введите c -25 x=5,000000 x1=-1,#INF00 x2=-1,#INF00 аааа #include<stdio.h> #include<conio.h> https://www.cyberforum.ru/ c-beginners/ thread1957726.html C (СИ) Пропуск первого поля структуры при заполнении очереди https://www.cyberforum.ru/ c-beginners/ thread1957657.html
Нужна помощь...После создания первого узла,при добавлении узла ,внесение нового элемента начинается только со второго поля...Почему пропускает первое поле(первую строку) я не понимаю.Так же после очистки очереди,добавление первого узла начинается со второго поля структуры...Не понимаю в чём дело,помогите пожалуйста! #include <windows.h> #include <stdlib.h> #include <stdio.h> #include...
Многомерные массивы и указатели C (СИ)
#include <stdio.h> #include <stdlib.h> int main() { int zippo = {{2,4},{6,8},{1,3},{5,7}}; printf(" zippo = %p, zippo + 1 = %p\n", zippo, zippo+1); printf("zippo = %p, zippo +1 = %p\n", zippo, zippo + 1);
C (СИ) Локальные максимумы в двумерном массиве https://www.cyberforum.ru/ c-beginners/ thread1957603.html
Написать юнит-тесты и реализовать следующую функцию: Определяет количество локальных максимумов и их координаты.Элемент является локальным максимумом, если окружающие его по вертикали и горизонтали элементы имеют меньшее значение.Элементы на границе мат
1 / 0 / 1
Регистрация: 13.04.2014
Сообщений: 64
0

Однофайловая БД сортировка и фильтрация - C (СИ) - Ответ 10318599

11.04.2017, 13:05. Показов 928. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день уважаемы форумчане проблема вот в чём, не работает сортировка (компилю в Pellec C, может проблема в нём) и ещё не совсем понимаю как сделать фильтрацию, помогите кто чем может. Код прилагаю.
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <locale.h> 
 
struct node
{
    int elem;
    char* name;
    struct node* next, *prev;
};
 
typedef struct node Node;
 
struct list
{
    Node* head;
    Node* tail;
};
 
typedef struct list List;
 
void initializeList(List* lst)
{
    lst->head = 0;
    lst->tail = 0;
}
 
void push_back(List* lst, int numb ,  char nam [])
{
    Node* t = (Node*) malloc(sizeof(Node));
    t->elem = numb;
     size_t length = strlen(nam);
   t->name = (char*) malloc(length + 1);
   strcpy(t->name, nam);;
    t->next = 0;
    if(lst->head == 0)
    {
       lst->head = t;
       lst->tail = t;
       return;
    }
    lst->tail->next = t;
    lst->tail = t;
}
 
void print_list(const List* const lst)
{
    for(Node* tmp = lst->head; tmp; tmp = tmp->next)
        printf("%d  %s\n", tmp->elem,tmp->name);
 
} 
 
void free_list(List* lst)
{
    lst->tail = lst->head;
    while(lst->head)
    {
       lst->head = lst->head->next;
       free(lst->tail);
       lst->tail = lst->head;
    }
}
 
 
 
 void SaveToFile(List* lst)
{  
    FILE *f;
    f = fopen("main.txt","wb"); // Открываем файл на запись данных
    if (f == NULL) { // Не удалось открыть - выводим сообщение об ошибке
        fprintf(stderr, "Не могу открыть файл на запись.\n");
   
    }
    int count = 0;
     for(Node* tmp = lst->head; tmp; tmp = tmp->next)
        { // Записываем в файл элементы по 1 за цикл, перемещаясь по списку пока не достигнем конца
        fprintf(f, "%d\r\n",tmp->elem);
        fprintf(f, "%s\r\n",tmp->name);
       count++;
    }
    // Закрываем файл
    fclose(f);
    // Выводим сообщение
    printf("\n --> Записано %d записей в файла main.txt\n",count);
  
}
 
 void LoadInFile(List* lst)
{  
    FILE *f;
    f = fopen("main.txt","ab+"); // Открываем файл на запись данных
    if (f == NULL) { // Не удалось открыть - выводим сообщение об ошибке
        fprintf(stderr, "Не могу открыть файл на запись.\n");
        exit(0);
    }
    int count = 0;
 
        char* w = (char*)malloc(30 * sizeof(char)); 
        int q;
        while(fscanf (f, "%d%s",  &(q),w) != EOF)
        { 
       // printf("%d %s\n", q, w);
        push_back(lst,q,w);
        count++;    
        }
    // Закрываем файл
    fclose(f);
    // Выводим сообщение
    printf("\n --> Загрузил %d записей в файла main.txt\n",count);
  
}
 
void search_elem(List* lst, int numb)
{    Node* tmp = lst->head;
     printf("Список искомых");
     printf("==============================\n");
     while(tmp!=NULL)
     {
         if(tmp->elem==numb)
         {
             printf(" %d",tmp->elem);
             printf(" %s\n",tmp->name);  
         }
         tmp=tmp->next;
     }
}
 
 
void Del_elem (List* lst,int n)
{
    int i;
     Node *s = lst->head;
    Node *p;
    for (i = 1; i < n - 1; i ++)
        s = s->next;
    p = s->next;
    s->next = s->next->next;
    free(p);
}
 
void Red_elem (List* lst,int n)
{
    int i;
     Node *s = lst->head;
    for (i = 1; i <= n - 1; i ++)
        s = s->next;
        printf("Редактируеммая запись");
        printf(" %d",s->elem);
        printf(" %s\n",s->name);
        printf("Введите новые значения");
        scanf("%d",&s->elem);
        scanf("%s",s->name);
}
 
 
void ind_list(List* lst)
{
List ls;
initializeList(&ls);
int elem;
char name[30];
for(Node* tmp = lst->head; tmp; tmp = tmp->next)
    {
        printf(" %d",tmp->elem);
        printf(" %s\n",tmp->name);
        elem=tmp->elem;
        strcpy(name,tmp->name);
        printf(" %d",elem);
        printf(" %s\n",name);
        push_back(&ls,elem,name);
    }
 
}
 
void SortIns(List *lst)
{
  Node *tmp, *cur;         //Локальные переменные
  //Проверка: если в списке менее двух элементов, то
  //сортировать бессмысленно
  if((!lst->head)||(!lst->head->next)) return;
  //Устанавливаеся указатель на текущий элемент на второй
  lst->tail = lst->head->next;       //элемент в списке
  //В цикле: пока не упорядочены все элементы
  while(lst->tail){
    //Указатель tmp - на текущий элемент в списке
    tmp = lst->tail;
    //Указатель cur - на предыдущий элемент в списке
    cur = lst->tail->prev;
    //Указатель на текущий элемент устанавливается на
    //следующий элемент в списке
    lst->tail = lst->tail->next;
    //Выделение элемента, на который установлен указатель
    cur->next = tmp->next;               //tmp, из списка
    if(tmp->next) tmp->next->prev = cur;
    //В цикле производится поиск места вставки
   //while(cur&&(cmp(&cur->elem,&tmp->elem) > 0))
      cur = cur->prev;
    //Если выделенный элемент нужно вставить в «середину»
    if(cur){
      tmp->next = cur->next;
      tmp->prev = cur;
      cur->next = tmp;
      if(tmp->next) tmp->next->prev = tmp;
    }else{  //Иначе: в начало списка
      tmp->next = lst->head;
      tmp->prev = NULL;
      lst->head->prev = tmp;
      lst->head = tmp;
    }
  }
  //Установка указателя на текущий элемент на
  lst->tail = lst->head;    //начало списка 
}
 
 
 
int main(void)
{
setlocale(LC_ALL, "RU");
    List lst;
    initializeList(&lst);
    LoadInFile(&lst);
    //SortIns(&lst);
    int input;
    do{
    printf("Выберите действие: ");
    printf("\n1 - Вывод списка на экран: ");
    printf("\n2 - Добавление записи: ");
    printf("\n3 - Редактирование записи: ");
    printf("\n4 - Удаление записи: ");
    printf("\n5 - Поиск записи:");
    printf("\n6 - Выход:\n");
    scanf( "%d", &input );
    system("cls");
    switch ( input ) {
        case 1:           
            print_list(&lst);
            break;
        case 2:
            push_back(&lst, 10,"azz");
            break;
        case 3:
            Red_elem(&lst,2);
            break;
        case 4:
            Del_elem(&lst,4);
            ind_list(&lst);
            break;
        case 5:
            search_elem(&lst,10);
            break;
        case 6:
            SaveToFile(&lst);
            free_list(&lst);
            exit(0);
            break;
 
        default:
            printf( "Неправильный ввод.\n" );
    }
    }while(input!= 6);
    //int k;
    //char l[30];
    //scanf("%d",&k);
    //scanf("%s",l);
 
    /*printf("\n 1Список\n");
    print_list(&lst);
   // push_back(&lst, 10,"azz");
    //push_back(&lst, 15,"azz");
   // push_back(&lst, 25,"azz");
   // push_back(&lst, 1,"azz");
    //push_back(&lst, k,l);
    printf("\n 2Список\n");
    print_list(&lst);
    Red_elem(&lst,2);
    printf("\n 4Список\n");
    print_list(&lst);
    Del_elem(&lst,4);
    ind_list(&lst);
    printf("\n 3Список\n");
    print_list(&lst);
 
    search_elem(&lst,10);*/
    SaveToFile(&lst);
    free_list(&lst);
}
Компилятор ругается на эту строчку
C
1
//while(cur&&(cmp(&cur->elem,&tmp->elem) > 0))
проблема во мне или в компиляторе?

Вернуться к обсуждению:
Однофайловая БД сортировка и фильтрация C (СИ)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2017, 13:05
Готовые ответы и решения:

Сортировка - фильтрация
Добрый вечер, Прошу подсказать, кто сталкивался - в приложенном файле как можно сделать...

Фильтрация,сортировка,поиск
Уважаемые знатоки есть вопросик!!!:) На форме datagridview через с автоматически созданными...

Фильтрация и сортировка в Excel
Добрый день!!! на практике подкинули задачку, никак не могу осилить: дана таблица уже с готовыми...

Фильтрация и сортировка ListBox
У меня есть ListBox, который содержит информацию о компьютерах. Пользователь выбирает тип...

8
11.04.2017, 13:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2017, 13:05
Помогаю со студенческими работами здесь

Сортировка и фильтрация данных
Есть простой книжный интернет магазин. На главной странице есть форма поиска, книг по названию....

Фильтрация и сортировка тоже
Здравствуйте. Прошу помощи. Надо сдавать, а не могу сообразить. В Дельфи нуль. Перечитал кучу...

Многократная фильтрация (сортировка)
Здравствуйте! У меня такой вопрос: У меня есть страница, в которой я через ASP обращаюсь в...

Фильтрация и сортировка по списку
Нужна простенькая программа, содержащий фильтрацию и сортировку по списку, может у кого есть...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru