原意>0 就替换该下标元素,不足以0补齐,但是实际输出少了很多0

#include <iostream>
#include <cmath>
#include <stdio.h>
#include <string.h>
#include <vector>
#include<cstdio>
int out[1000000];
using namespace std;
string strin;
int times=0;
int contral[5];
int maxl,backl,temp,t1,t2,t3,t4,t5,cs=0;
const char * fg =",";
int main(){
freopen ("read.in","r",stdin);
freopen("read.out","w",stdout);
cin>>strin;
vector<int> arr;
char *str_in =(char *)strin.c_str();
char *p = strtok(str_in,fg);
int num=0;
while(p !=NULL){
sscanf(p,"%d",&num);
arr.push_back(num);
p=strtok(NULL,fg);
times=arr.size();
//times++;
}
cout<<"此次录入了:"<<times<<"个数据"<<endl;
cout<<"元素为:"<<endl;
for(int i=0;i<arr.size();i++){
cout<<arr[i]<<' ';
}
cout<<endl;
for(int i=0;i<=4;i++){
contral[i]=arr[times-5+i];
}
t1=abs(contral[0]);
t2=abs(contral[1]);
t3=abs(contral[2]);
t4=abs(contral[3]);
t5=abs(contral[4]);
maxl=max(t1,t2);
maxl=max(maxl,t3);
maxl=max(maxl,t4);
maxl=max(maxl,t5);
//找最大值
cout<<"contral数组最大值:"<<maxl<<endl;
for(int i=0;i<=maxl+1;i++){
out[i]=0;
}
for(int t=0;t<arr.size()-5;t++){
out[t]=arr[t];
}
cout<<"需排列数组:"<<endl;
for(int i=0;i<arr.size()-5;i++){
cout<<out[i]<<' ';
cs++;
}
cout<<endl;
//排序处
for(int j=0;j<cs;j++){
for(int i=0;i<cs-j-1;i++){
if(out[i]>out[i+1]){
temp = out[i];
out[i]=out[i+1];
out[i+1]=temp;
}
}
}
cout<<endl;
cout<<"排序后数组:"<<endl;
for(int i=0;i<cs;i++){
cout<<out[i]<<' ';
}
cout<<endl;
for(int i=0;i<=4;i++){
if(contral[i]<0){
for(int j=0;j<=cs;j++){
out[abs(contral[i])]=out[abs(contral[i])+1];
}
backl++;
//删除最后一位元素,前移一个元素下标
}
else if(contral[i]>=0){
out[contral[i]]=contral[i];
}
//替换...
}
cout<<"结果为:"<<endl;
for(int i=0;i<=maxl+1-backl;i++){
cout<<out[i]<<' ';
}
//最终输出
return 0;
}