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

исправить ошибку) Связные списки - C++

Восстановить пароль Регистрация
 
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
22.05.2012, 22:03     исправить ошибку) Связные списки #1
помогите исправить ошибку в программе

сама программа с ошибкой
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include "conio.h"
using namespace std;
#define st struct  st
#define list struct list
  list
{int info;  list*next;};
  st
{list*up; list*down; st*right;};
 
 list *y1,*u1,*y2,*u2;
 st *t,*y,*u;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{   setlocale(0,"Rus");
    int a,n,i; char g,c;
 printf ("->");
scanf ("%d",&a);
n=1;
if (a==0) printf ("список пуст");
else
{
    while(a!=0)
{y=new st;
   y->up=0; y->down=0;
   y->right=0;
y1=new list;
y1->info=a;
y1->next=0;
y->down=y1;
if(t==0)
 t=y;
else {u->right=y;
      u1->next=y1;
      }
scanf( "%d",&a); n++;
if (a!=0)
{y2=new list;
y2->info=a;
y2->next=0;
if(n!=2)
y2->next=u2;
u=y;u1=y1; u2=y2;
scanf("%d",&a);
n++;}
    }
 
y=t;
while (y!=0&&y2!=0)
{y->up=y2;
y=y->right;
y2=y2->next;
}
g='g';
while (g=='g')
{
printf("\n * Для перехода по списку используйте клавиши  2 - 'V' и '6' - '->'и 8 - '^' \n или нажмите пробел для просмотре текущего элемента\n");
y=t;n=0;  
c=getch();
 
while (c!= '1')
{
    if (c== '6')
    {   if(n!=0)
    {if(y1!=0)
        { 
            printf( "%d->" ,y1->info);
            y1=y1->next;
    }
        else
            printf ("end");
    }else
        if(y!=0)
        {printf( "| | | |->" );
            y=y->right;
        }
        else
            printf("nil");
    }
    if (c=='2')
     
    {if ((y->down)!=0)
        {
            printf("\n|\nV\n%d\n",y->down->info);
            y1=y->down;n=1;
 
    }}
    if (c=='8')
     
    {if ((y->up)!=0)
        {
            printf("%d\n^\n|\n",y->up->info);
            y1=y->up;n=1;
 
    }}
 
c=getch();
}
printf("\nbegin?g \n): ");
 
g=getch();
}
}
 
    return 0;
}

ошибка
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(13): error C2365: y1: переопределение; предыдущим определением было "функция"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(470): см. объявление "y1"
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(43): error C2659: =: функция в качестве левого операнда
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(44): error C2227: выражение слева от "->info" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(45): error C2227: выражение слева от "->next" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(46): error C2440: =: невозможно преобразовать "double (__cdecl *)(double)" в "list *"
1> Не существует контекста, в котором такое преобразование возможно
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(50): error C2440: =: невозможно преобразовать "double (__cdecl *)(double)" в "list *"
1> Не существует контекста, в котором такое преобразование возможно
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(59): error C2440: =: невозможно преобразовать "double (__cdecl *)(double)" в "list *"
1> Не существует контекста, в котором такое преобразование возможно
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(83): error C2227: выражение слева от "->info" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(84): error C2227: выражение слева от "->next" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(101): error C2659: =: функция в качестве левого операнда
1>c:\users\admin\documents\visual studio 2010\projects\1112ц\1112ц\1112ц.cpp(109): error C2659: =: функция в качестве левого операнда
1>
1>СБОЙ построения.


само задание если нужно VVVVV
Миниатюры
исправить ошибку) Связные списки  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2012, 22:03     исправить ошибку) Связные списки
Посмотрите здесь:

Связные списки C++
C++ Связные списки
C++ Связные списки
Связные списки C++
C++ Связные списки.
Связные списки C++
C++ Связные списки
C++ двусвязные списки. Исправить ошибку в коде

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kryasan
-22 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 38
24.05.2012, 19:15  [ТС]     исправить ошибку) Связные списки #2
up! помогите не могу исправить
Рыжий Лис
Просто Лис
 Аватар для Рыжий Лис
209 / 164 / 44
Регистрация: 17.05.2012
Сообщений: 611
Записей в блоге: 4
24.05.2012, 19:32     исправить ошибку) Связные списки #3
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
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
#define st struct  st
#define list struct list
  list
{int info;  list*next;};
 
  st
{list*up; list*down; st*right;};
 
 list *y1,*u1,*y2,*u2;
 st *t,*y,*u;
 
int main()
{   setlocale(0,"Rus");
    int a,n; char g,c;
 printf ("->");
scanf ("%d",&a);
n=1;
if (a==0) printf ("список пуст");
else
{
    while(a!=0)
{y=new st;
   y->up=0; y->down=0;
   y->right=0;
y1=new list;
y1->info=a;
y1->next=0;
y->down=y1;
if(t==0)
 t=y;
else {u->right=y;
      u1->next=y1;
      }
scanf( "%d",&a); n++;
if (a!=0)
{y2=new list;
y2->info=a;
y2->next=0;
if(n!=2)
y2->next=u2;
u=y;u1=y1; u2=y2;
scanf("%d",&a);
n++;}
    }
 
y=t;
while (y!=0&&y2!=0)
{y->up=y2;
y=y->right;
y2=y2->next;
}
g='g';
while (g=='g')
{
printf("\n * Для перехода по списку используйте клавиши  2 - 'V' и '6' - '->'и 8 - '^' \n или нажмите пробел для просмотре текущего элемента\n");
y=t;n=0;
c=getch();
 
while (c!= '1')
{
    if (c== '6')
    {   if(n!=0)
    {if(y1!=0)
        {
            printf( "%d->" ,y1->info);
            y1=y1->next;
    }
        else
            printf ("end");
    }else
        if(y!=0)
        {printf( "| | | |->" );
            y=y->right;
        }
        else
            printf("nil");
    }
    if (c=='2')
 
    {if ((y->down)!=0)
        {
            printf("\n|\nV\n%d\n",y->down->info);
            y1=y->down;n=1;
 
    }}
    if (c=='8')
 
    {if ((y->up)!=0)
        {
            printf("%d\n^\n|\n",y->up->info);
            y1=y->up;n=1;
 
    }}
 
c=getch();
}
printf("\nbegin?g \n): ");
 
g=getch();
}
}
 
    return 0;
}
Так без ошибок. компилятор mingw
Yandex
Объявления
24.05.2012, 19:32     исправить ошибку) Связные списки
Ответ Создать тему
Опции темы

Текущее время: 08:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru