给出一个有序增数组,求出平方后依然有序增的数组,并输出
#include <iostream>
using namespace std;
void square(int *arr,int numsofarr)
{
int k=numsofarr-1;
int i,j;//定义双指针
int *result=new int [numsofarr];//创建数组存放结果
for (i=0,j=numsofarr-1;i<=j;)
{
if (arr[i]*arr[i]>arr[j]*arr[j])//找出其中的大者
{
result[k]=arr[i]*arr[i];
k--;
i++;
}
else /*(arr[i]*arr[i]<=arr[j]*arr[j])*/
{
result[k]=arr[j]*arr[j];
k--;
j--;
}
}
for (int i=0;i<numsofarr;i++)
{
cout<<result[i]<<" ";
}
cout<<endl;
delete result;
}
int main()
{
int numsofarr;
cin>>numsofarr;
int *arr=new int [numsofarr];
for (int i=0;i<numsofarr;i++)
{
cin>>arr[i];
}
square(arr,numsofarr);
delete arr;
return 0;
}