用向量数组写了一个demo。
#include <iostream>
#include<vector>
using namespace std;
vector<int> sort(vector<int>,int);
void print(vector<int>,int);
void count(vector<int>,int,int,int);
vector<int> indexArray(vector<int>,int,int);
int n = 0;//数组大小
void main()
{
do{
cout<<"请输入要操作的整数个数(<100):\n";
cin>>n;
}while(n>100||n<1);
vector<int> array(n);//声明变长数组
cout<<"从键盘上输入 "<<n<<" 个整数:\n";
int m;//输入数字
for(int i = 0; i < n; i++)
{
cin>>m;
array[i] = m;
}
vector<int> arraySort = sort(array,n);//排序后的数组
cout<<"输入要统计的范围(a,b):\n";
int a,b,index;
cin>>a>>b;
cout<< "\n大于"<<a<<"小于"<<b<<"的数:";
count(arraySort,n,a,b);
cout<<"输入要检索的数字:\n";
cin>>index;
vector<int> arrayIndex = indexArray(arraySort,n,index);
print(arrayIndex,arrayIndex.size());
}
vector<int> sort(vector<int> array, int len)
{
int temp;
for(int i = 0 ; i < len; i++)
{ for(int j = i; j< len; j++)
{
if(array[i]>array[j])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
//打印排序后的数组
for(int k = 0 ; k < len; k++)
cout<<array[k]<<",";
cout<<endl;
return array;
}
void count(vector<int> array,int len,int a,int b)
{
int countNum = 0;
for(int i = 0; i< len;i++)
{
if(array[i] >a && array[i] < b)
{
countNum++;
cout<<array[i]<<",";
}
}
cout<< "\n大于"<<a<<"小于"<<b<<"的数共"<<countNum<<"个。\n";
}
vector<int> indexArray(vector<int> array,int len,int index)
{
vector<int>temp(len);
bool flg = false;//标记是否存在index
for(int i = 0 ; i< len ; i++)
{
if(array[i] == index)
{
temp[i] = i;
flg = true;
}
}
if(index>array[len-1])
array.insert(array.end(),index);//插入尾部
else
array.insert(array.begin(),index);//插入头部
if(!flg)
{
cout<<"新数组为:\n";
return array;
}
cout<<"检索到的数组下标为:\n";
return temp;
}
void print(vector<int> array,int len)
{
for(int i = 0 ; i< len; i++)
if(array[i]>0)
cout<<array[i]<<" ";
cout<<"\n";
}
温馨提示:内容为网友见解,仅供参考