Вот отрывок кода, указывает, что ошибка на 5ой и 16ой строке, то есть функция min и max.
ошибка:
1>c:\users\андрей\documents\visual studio 2010\projects\sb\sb\data.c(5): error C2059: синтаксическая ошибка: тип
1>c:\users\андрей\documents\visual studio 2010\projects\sb\sb\data.c(16): error C2059: синтаксическая ошибка: тип
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| static int min(int a, int b)
{
return a < b ? a : b;
}
static int minCoord(int Coord[4])
{
int minimalCoord1 = min(Coord[0], Coord[1]), minimalCoord2 = min(Coord[2], Coord[3]);
return minimalCoord1 < minimalCoord2 ? minimalCoord1 - 1 : minimalCoord2 - 1;
}
static int max(int a, int b)
{
return a > b ? a : b;
}
static int maxCoord(int Coord[4])
{
int maxCoord1 = max(Coord[0], Coord[1]), maxCoord2 = max(Coord[2], Coord[3]);
return maxCoord1 > maxCoord2 ? maxCoord1 - 1 : maxCoord2 - 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
| #include <stdio.h>
#include <stdlib.h>
#include "data.h"
static int min(int a, int b)
{
return a < b ? a : b;
}
static int minCoord(int Coord[4])
{
int minimalCoord1 = min(Coord[0], Coord[1]), minimalCoord2 = min(Coord[2], Coord[3]);
return minimalCoord1 < minimalCoord2 ? minimalCoord1 - 1 : minimalCoord2 - 1;
}
static int max(int a, int b)
{
return a > b ? a : b;
}
static int maxCoord(int Coord[4])
{
int maxCoord1 = max(Coord[0], Coord[1]), maxCoord2 = max(Coord[2], Coord[3]);
return maxCoord1 > maxCoord2 ? maxCoord1 - 1 : maxCoord2 - 1;
}
int PositionShips(int string[4], int column[4], int Arr[][10])
{
register int i, freeCell, lenShip, zone;
// Если корабль однопалубный
if( !column[1] && !string[1] )
{
if( !Arr[string[0] - 1][column[0] - 1])
{
Arr[(string[0] - 1)][(column[0] - 1)] = 1;
// Выставляем запретную зону для расстановки кораблей вблизи только что установленного.
for( i = 2; i >= 0; i-- )
for( freeCell = 2; freeCell >= 0; freeCell-- )
if( Arr[( string[0] - i )][(column[0] - freeCell)] != 1 )
Arr[( string[0] - i )][(column[0] - freeCell)] = -1;
return 1;
}
// ..........................
}
// #############################
// Если корабль вертикальный
if( column[0] && !column[1] )
{
// Проверка длины корабля
lenShip = 0;
while(string[lenShip]) lenShip++;
for( i = 0, freeCell = 0; i < 4; i++ )
{
if( !Arr[ ( string[i] - 1 ) ][ ( column[0] - 1 ) ] ) freeCell++;
}
if( freeCell == lenShip)
{
for( i = 0; i < 4; i++ ) Arr[ ( string[i] - 1 ) ][ ( column[0] - 1 ) ] = 1;
// Выставляем запретную зону для расстановки кораблей вблизи только что установленного.
for(i = 0; i < lenShip; i++)
for(freeCell = 0; freeCell <= 2; freeCell++)
if(Arr[string[i] - 1][column[0] - freeCell] != 1)
Arr[string[i] - 1][column[0] - freeCell] = -1;
for(i = 0; i < 3; i++)
Arr[minCoord(string) - 1][column[0] - freeCell] = -1;
for(i = 0; i < 3; i++)
Arr[maxCoord(string)][column[0] - freeCell] = -1;
// ..........................
return 1;
}
else
return -1;
}
// #############################
// Если корабль горизонтальный
if( string[0] && !string[1] )
{
lenShip = 0;
while(column[lenShip]) lenShip++;
for( i = 0, freeCell = 0; i < 4; i++ )
{
if( !Arr[ ( string[0] - 1 ) ][ ( column[i] - 1 ) ] ) freeCell++;
}
if( freeCell == lenShip)
{
for( i = 0; i < 4; i++ ) Arr[ ( string[0] - 1 ) ][ ( column[i] - 1 ) ] = 1;
return 1;
}
else
return -1;
// Выставляем запретную зону для расстановки кораблей вблизи только что установленного.
for( i = 2; i >= 0; i-- )
for( freeCell = lenShip + 2; freeCell >= 0; freeCell-- )
if( Arr[( string[0] - i )][(column[0] - freeCell)] != 1 )
Arr[( string[0] - i )][(column[0] - freeCell)] = -1;
// ..........................
}
// #############################
} |
|
Добавлено через 33 минуты
Кажется это были глюки VS 2010, написал большими буквами функции Min и Maх и все нормально стало, а может и перегрузил какую-то функцию из стандартной либы