自己的作业自己完成
程序代码:
#include <iostream>
#include <algorithm>
#include <functional>
#include <random>
using namespace std;
// (1) 数组元素输入数据的方式分别由2个用户自定函数来实现,一个由用户来输入每个数据,一个由系统自动产生一组随机数
size_t user_input( int array[], size_t maxsize )
{
size_t size = 0;
//for( ; maxsize!=size && cin>>array[size]; ++size );
return size;
}
void random_generation( int array[], size_t maxsize )
{
// http://en.
}
// (2) 数组元素的输出由函数来实现
void print_array( const int array[], size_t size )
{
// std::copy( array, array+size, std::ostream_iterator(cout," ") );
}
// (3) 定义简单选择排序函数
void select_sort( int array[], size_t size, bool descending_order )
{
//descending_order ? std::sort(array,array+size,std::greater<int>()) : std::sort(array,array+size);
}
// (4) 定义2个函数,实现顺序、折半查找某个整数是否在该数列中,是,给出所在的位置,不是,给出投找到。
void array_find( const int array[], size_t size, int value )
{
// std::find( array, array+size, value );
}
void array_binarysearch( const int array[], size_t size, bool descending_order, int value )
{
// descending_order ? std::binary_search(array,array+size,value,std::greater<int>()) : std::binary_search(array,array+size,value);
}
int main( void )
{
// (5) 在main函数中定义一个数组,提示用户采用哪种输入方式产生数据,并实现之,同时在屏幕上打印数据的初始序列值。
cout << "请选择 1.用户输入数据, 2.随机生成: ";
int input_option;
if( !(cin>>input_option) || (input_option!=1 && input_option!=2) )
return 1;
int array[100];
size_t array_size = std::size(array); // sizeof(array)/sizeof(*array)
if( input_option == 1 )
array_size = user_input( array, array_size );
else
random_generation( array, array_size );
print_array( array, array_size );
// (6) 提示用户排序(升序或降序),将排序后的序列打印输出
cout << "请选择 1.升序, 2.降序: ";
int sort_option;
if( !(cin>>sort_option) || (sort_option!=1 && sort_option!=2) )
return 1;
select_sort( array, array_size, sort_option==2 );
print_array( array, array_size );
// (7) 查找某数是否存在
cout << "请输入待查询的数: ";
int element;
if( !(cin>>element) )
return 1;
array_find( array, array_size, element );
array_binarysearch( array, array_size, sort_option==2, element );
return 0;
}