Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 17
1

поиск в списке

19.12.2011, 01:56. Показов 987. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
реализовать функцию, которая формирует список L, включая в него элементы, которые входят в один из списков L1 или L2, но не входят в другой. Не могу понять как мне сделать сравнения двух списком и при этом делать добавления. Моя реализация такая:

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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 5
 
struct El {
  int d;
  El *next;
};
 
El *add (El *top, int x);
void show (El *top);
int search(El *top1, El *top2);
 
El *top1=NULL;
El *top2=NULL;
El *top3=NULL;
 
int l,l2;
 
int main (){
  setlocale(LC_ALL,"rus");
  int i,j,k,x,x2,x3;
    
    printf("Введите елементы 1-го списка:\n");
    for (i=0; i<N ;i++){
      scanf ("%d", &x);
      top1=add (top1, x);
    }
      show (top1);
   
    printf("\nВведите елементы 2-го списка:\n");
    for (j=0;j<N ;j++){
      scanf ("%d",&x2);
      top2=add (top2, x2);
    }
      show (top2);
      
     printf("\nНовый список:");  
     for(k=0;k<N;k++){
       //printf("%d\t",search(top1,top2));
       search(top1,top2);
       show(top3);
     } 
  getch();
  return 0;
}
 
El *add (El *top, int x){
  El *t, *cur = top;
  t = (El *) malloc(sizeof(El));
    t->d = x;
    t->next = NULL;
    if (cur == NULL){ //cur - указатель на текущий елемент
      cur = t;
      return cur;
    }
    while (cur->next != NULL){
      cur = cur->next;
    }
      cur->next = t;
    return top;
}
 
 
void show (El *top){
  El *cur;
    cur = top;
      while (cur != NULL){
       printf("%d ",cur->d);
          cur = cur->next;
          l++;
      }
}
 
int search(El *top1, El *top2){
       
    int i,j,k,x;
    El *cur; El *cur2;
    cur=top1; cur2=top2;
     
    for(i=0;i<N;i++){
        for(j=0;j<N;j++){
            if(cur->d == cur2->d)
               continue;
             top3=add(top3,cur->d);  
            cur->next;
            }
    }
    
}//конец ф-и
Вроде бы все написано верно, но при запуске на выходе получаю одно и тоже число много раз (30)

Добавлено через 4 часа 19 минут
Как получить текущий элемент списка ?

Добавлено через 2 часа 4 минуты
Помогите исправить ошибку в поиске одинаковых елементов и занесении их в ф-ю add(top3,k)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
El *search(El *top1,El *top2){
       
    int i,j,k,x;
    El *cur; El *cur2;
    cur=top1; cur2=top2; 
    for(i=0;i<N;i++){
        for(j=0;j<N;j++){
            if((cur->d) == (cur2->d))
               continue;
            
            if(cur->d==cur2->d){  
               k=cur->d;   
            }else{
               k=cur2->d;   
            }    
        }     
            top3=add(top3,k);    
            cur=cur->next;
            cur2=cur2->next;          
    }
    
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2011, 01:56
Ответы с готовыми решениями:

Поиск в списке
помогите пожалуйста, затупила с поиском Если мы сохраняем и имя и номер в списке, то как найти по...

Поиск в списке
Нужно из текстового файла вида: lr001 Шевченко lr003 Горький lr002 Лермонтов ... lr00n Захаров...

Поиск в списке
Здравствуйте. Есть форма на ней данные из двух таблиц(работники и подконтрольные перевозки), так...

Поиск в списке
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstring&gt; #include &lt;windows.h&gt; using...

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

Поиск в списке
Всем еще раз добрый вечер! Подскажите. Вроде задача банальная, но чтото не ростет! Есть список со...

Поиск в списке
Функция 'vhodit' возвращает T если ее первый аргумент входит в список второго аргумента, в другом...

Поиск в списке
Найти в списке все фамилии, начинающиеся со слога «Ма».

Рекурсивный поиск в списке
Добрый вечер. Я решал одну задачку из книги Х.Дейтела и П.Дейтела &quot;Как программировать на C++&quot; и у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru