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

Односвязные лнейные списки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ класс Time http://www.cyberforum.ru/cpp-beginners/thread151369.html
у класса Time скрытые переменные - minutes и hours. функция-член должна принять ссылку на оъект Time и... короче, вот код: Time Time::sum(Time & s) { sum.hours=s.hours+hours; sum.minutes=s.minutes+minutes; if (sum.minutes>=60) { sum.hour++; sum.minutes-=60; }
C++ Копирование одной строки в другую циклом for Добрый день! есть программа, в которой пытаюсь скопировать одну строку в другую(без использования strcpy()) : int _tmain(int argc, _TCHAR* argv) { char b; // 1я строка char c; // 2я строка gets(b); // считываю строку b (строка всегда =< 14 символам) for (int i=0;b;i++) {c=b;} http://www.cyberforum.ru/cpp-beginners/thread151360.html
C++ Порязрядные операции в С
В чем разница между операторами ! и ~? Как я понимаю, оба оператора преобразуют единичные биты в нулевые и наоборот, но почему printf("%d", !0) выводит 1, а printf("%d", ~0) выводит -1?
C++ Вызов из потомка конструктор родителя
Как на с++ вызывается конструктор-родителя от конструктора-потомка. На яве так работает: package u; class A{ private int a,b,c; A(){} A(int x1, int y1, int z1){ a = x1; b = y1; c = z1; }
C++ считать из файла http://www.cyberforum.ru/cpp-beginners/thread151347.html
помогите написать функцию которая считает из файла множество цифр и разобьёт по-битам т.е. представит в виде последовательности из 1 и 0 Добавлено через 2 часа 20 минут чтобы последовательность была массивом
C++ Конструкторы и деструкторы функционального объекта Привет всем. Вообщем разбирал задачу, в которой рассматривается алгоритм for_each, я решил добавить отладочный вывод в конструктор и деструктор чтобы посмотреть сколько раз они вызываются и честно говоря результат меня удивил #include <iostream> #include <algorithm> using namespace std; class display{ private: int i; подробнее

Показать сообщение отдельно
Гамбит
14 / 14 / 1
Регистрация: 19.10.2009
Сообщений: 93
14.07.2010, 14:02  [ТС]     Односвязные лнейные списки
и снова я=( я написал более понятную для меня программу, но она НЕ РАБОТАЕТ, что бы я не делал. помогите разобраться-где ошибка.
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <alloc.h>
typedef struct list {
char word[15];
struct list *next;
} LIST;
LIST *read_list(LIST *lst)
{
  LIST *p;
  FILE *f;
  f=fopen("1.txt","r");
  if (!feof(f))
  {
    lst=(LIST *)malloc(sizeof(LIST));
    p=lst;
    while (1)
    {
      fscanf(f,"%s",&p->word);
      if (!feof(f))
      {
    p->next=(LIST *)malloc(sizeof(LIST));
    p=p->next;
      } else break;
    }
    p->next=NULL;
  }
  else printf("Файл пустой\n");
  fclose(f);
  return lst;
}
 
 
LIST *double_word(LIST * lst,const char *s)
{
        LIST * dbl=NULL;
        while ( lst )
        {
            if ( strstr(lst->word, s) )
            {
                dbl->next = lst->next;
                lst->next = dbl;
                lst = lst->next;
            }
        lst = lst->next;
        }
return lst;
}
void write_list(LIST *lst)
{
FILE *f;
LIST *p=lst,*prev;
prev=lst;
f=fopen("words.txt","w");
while (p)
    {
    fprintf(f,"%s ",p->word);
    prev=p->next;
    free(p);
    p=prev;
    }
fclose(f);
}
Добавлено через 1 час 14 минут
вызов функций происходит в мейне =)

Добавлено через 3 часа 47 минут
Я понял что ошибка в функции double_word но пока не понял в чём=(

Добавлено через 44 минуты
ппц, вот я идиот=) всем спасибо. вот работающий вариант программы (кстати очень лёгкий)

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <alloc.h>
typedef struct list {
char word[15];
struct list *next;
} LIST;
 
LIST *read_list(LIST *lst)
{
LIST *p;
FILE *f;
f=fopen("words.txt","r");
if (!feof(f))
    {
    lst=(LIST *)malloc(sizeof(LIST));
    p=lst;
    while (1)
        {
        fscanf(f,"%s",&p->word);
        if (!feof(f))
            {
            p->next=(LIST *)malloc(sizeof(LIST));
            p=p->next;
            } else break;
        }
    p->next=NULL;
    }
else printf("File is empty\n");
fclose(f);
return lst;
}
 
void write_list(LIST *lst,const char *s)
{
FILE *f;
LIST *p=lst,*prev;
prev=lst;
f=fopen("words.txt","w");
while (p)
    {
    fprintf(f,"%s ",p->word);
    if ( strstr(p->word, s) )
    fprintf(f,"%s ",p->word);
    prev=p->next;
    free(p);
    p=prev;
    }
fclose(f);
}
 
void main()
{
char s;
clrscr();
scanf("%s",&s);
LIST *lst=NULL;
lst=read_list(lst);
write_list(lst,&s);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru