[問題] Visual Studio 6的程式碼無法用Dev-C++編譯?
我朋友寫了這些,可是我想用Dev-C++編譯並執行沒辦法
請問高手們有方法嗎?
# include < stdio.h >
# include < vector >
using namespace std;
# define MAX 50
typedef vector< int* >* VEC_PTR;
int* NewAIntArray() ;
bool Correct( int* array ) ;
int* CopyArray( int* array ) ;
VEC_PTR Shift( int source, int goal ) ;
void Permutation( int* array, int source, int goal );
void PrintArray( int* array ) ;
void PrintVec( vector< int* >* vec ) ;
int* Initialize();
bool FindSame( int* array );
void Push( int* array );
int gMember = 4;
int gJobs = 10;
vector< int* > gCollection;
void main()
{
int* array = Initialize();
Permutation( array, gMember-1, gMember-2 );
PrintVec( &gCollection );
} // end main()
int* Initialize()
{
int* temp = NewAIntArray();
int i = 0;
for ( i = 0 ; i < gMember; i++ )
temp[ i ] = 1;
temp[ gMember-1 ] = ( gJobs - gMember ) + 1;
return temp;
} // end Initialize()
int* NewAIntArray()
{
int* temp = new int[ MAX ];
int i = 0;
for ( i = 0 ; i < MAX ; i++ )
temp[ i ] = 0;
return temp;
} // end NewAIntArray()
bool Correct( int* array )
{
int size = gMember;
int i = 0;
for ( i = 0 ; i < size - 1 ; i++ )
if ( array[ i ] > array[ i+1 ] )
return false;
return true;
} // end Correct()
int* CopyArray( int* array )
{
int* temp = NewAIntArray();
int i = 0;
for ( i = 0 ; i < gMember ; i++ )
temp[ i ] = array[ i ];
return temp;
} // end CopyVec();
int* Shift( int source, int goal, int* array )
{
int* temp = CopyArray( array );
temp[ source ]--;
temp[ goal ]++;
return temp;
} // end Shift()
void Permutation( int* array, int source, int goal )
{
int* temp = NULL;
if ( Correct( array ) )
{
Push( array );
temp = Shift( source, goal, array );
Permutation( temp, source, goal );
if ( goal > 0 )
{
goal--;
} // end if ( goal >= 0 )
Permutation( temp, source, goal );
} // end if ( Correct( array )
else
{
delete temp;
temp = NULL;
} // end else of if ( Correct( array )
} // end Permutation()
void PrintArray( int* array )
{
int i = 0;
for ( i = 0 ; i < gMember ; i++ )
printf( "%d", array[ i ] );
printf( "\n" );
} // end PrintArray()
void PrintVec( vector< int* >* vec )
{
int i = 0, size = vec->size();
for ( i = 0 ; i < size ; i++ )
PrintArray( (*vec)[ i ] );
} // end PrintVec()
bool Equal( int* array1, int* array2 )
{
int i = 0;
for ( i = 0 ; i < gMember ; i++ )
if ( array1[ i ] != array2[ i ] )
return false;
return true;
} // end Equal()
bool FindSame( int* array )
{
int i = 0, size = gCollection.size();
for ( i = 0 ; i < size ; i++ )
if ( Equal( gCollection[ i ], array ) )
return true;
return false;
} // end FindSame()
void Push( int* array )
{
if ( ! FindSame( array ) )
gCollection.push_back( array );
} // end Push()
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.72.65
→
08/06 12:05, , 1F
08/06 12:05, 1F
→
08/06 12:08, , 2F
08/06 12:08, 2F
推
08/06 12:14, , 3F
08/06 12:14, 3F
→
08/06 12:40, , 4F
08/06 12:40, 4F
→
08/06 12:45, , 5F
08/06 12:45, 5F
→
08/06 12:46, , 6F
08/06 12:46, 6F
→
08/06 12:47, , 7F
08/06 12:47, 7F
推
08/06 15:15, , 8F
08/06 15:15, 8F
→
08/06 15:23, , 9F
08/06 15:23, 9F
噓
08/06 15:52, , 10F
08/06 15:52, 10F
→
08/06 19:09, , 11F
08/06 19:09, 11F
→
08/06 20:32, , 12F
08/06 20:32, 12F