首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求数组中元素的最大值,printArray()函数不能正常运行。有关问题出在size,为什么size的值是垃圾值

2013-06-25 
求数组中元素的最大值,printArray()函数不能正常运行。问题出在size,为什么size的值是垃圾值?#include ios

求数组中元素的最大值,printArray()函数不能正常运行。问题出在size,为什么size的值是垃圾值?
#include <iostream>
#include <iomanip> // for setw()
#include <cstdlib>// for srand()
#include <ctime>// for time()
using namespace std;
/* 类声明 */
class ArrayMax
{
public:
ArrayMax( int size = 10);
~ArrayMax();
void printArray( void );
void maxArray( void );
void printMax( void );

private:
int size;
int *pArray;
int max;

};
int main( void ) 
{
ArrayMax am1;
ArrayMax am2( 5 );

am1.printArray(); //输出am1的元素
am1.maxArray();//求出am1最大值
am1.printMax();//输出am1最大值

am2.printArray();//输出am2的元素
am2.maxArray();//求出am2最大值
am2.printMax();//输出am2最大值

getchar();
return 0;
}

/* 函数定义 */
ArrayMax :: ArrayMax( int size )
{
size = size;
pArray = new int[ size ];
max = 0;

time_t seed = time( NULL );
srand( ( unsigned int ) seed );

for( int i = 0 ; i < size ; i++ )
{
pArray[ i ] = rand() % 100 + 1;
}
}
ArrayMax :: ~ArrayMax()
{
delete [] pArray;
cout<< "动态空间已释放\n" ;
}
void ArrayMax :: printArray( void )
{
//cout<<size;//调试语句
cout << "\n数组元素如下 : \n" ;
for( int i = 0; i < size ; i++ )
{
cout << setw( 3 ) << pArray[ i ];
}
}
void ArrayMax :: maxArray( void )
{
max = pArray[ 0 ];
for( int i = 1 ; i < size ; i++ )
{
if( max < pArray[ i ] )
{
max = pArray[ i ];
}
}
}
void ArrayMax :: printMax( void )
{
cout << "数组元素的最大值是:" << setw( 3 ) << max << endl;
}
[解决办法]


#include <iostream>
#include <iomanip> // for setw()
#include <cstdlib> // for srand()
#include <ctime> // for time()
using namespace std;
/* 类声明 */
class ArrayMax
{
public:
ArrayMax( int size = 10);
~ArrayMax();
void printArray( void );
void maxArray( void );
void printMax( void );
private:
int size;
int *pArray;
int max;
};
int main( void ) 


{
ArrayMax am1;
ArrayMax am2( 5 );

am1.printArray(); //输出am1的元素
am1.maxArray();//求出am1最大值
am1.printMax(); //输出am1最大值

am2.printArray();//输出am2的元素
am2.maxArray();//求出am2最大值
am2.printMax(); //输出am2最大值

getchar();
return 0;
}

/* 函数定义 */
ArrayMax :: ArrayMax( int size )
{
this->size = size;//这里用this修饰一下。。因为size会被当成形参的size。。而不是类成员的size
pArray = new int[ size ];
max = 0;

time_t seed = time( NULL );
srand( ( unsigned int ) seed );

for( int i = 0 ; i < size ; i++ )
{
pArray[ i ] = rand() % 100 + 1;
}
}
ArrayMax :: ~ArrayMax()
{
delete [] pArray;
cout<< "动态空间已释放\n" ;
}
void ArrayMax :: printArray( void )
{
cout<<size;//调试语句
cout << "\n数组元素如下 : \n" ;
for( int i = 0; i < size ; i++ )
{
cout << setw( 3 ) << pArray[ i ];
}
}
void ArrayMax :: maxArray( void )
{
max = pArray[ 0 ];
for( int i = 1 ; i < size ; i++ )
{
if( max < pArray[ i ] )
{
max = pArray[ i ];
}
}
}
void ArrayMax :: printMax( void )
{
cout << "数组元素的最大值是:" << setw( 3 ) << max << endl;
}

热点排行