下面是我的理解,注释写了我的思路,供参考:
#include <iostream>
#include <iomanip>
using namespace std;
int main(void){
int data,temp,k;
int a[9]={50,25,15,10,8,4,2,-10};
cout<<"Enter a data:";
cin>>data;
a[8]=data; //把输入的数放入数组最后一个位置,进入循环进行位置移动
for(k=8;k>=1; k--){ //比较到第二个数就停止,因为k-1会访问到第一个数,所以到第二个数停止就可以了
if(a[k]>a[k-1]){ //如果k位置的数比k-1位置的数大,则交换他们的位置,让data找到正确的位置
temp=a[k];
a[k]=a[k-1];
a[k-1]=temp;
}else{
continue; //如果k位置的数比k-1位置的数小,说明位置正确,比较下一个数
}
}
for(k=0;k<=8;k++){ //打印数组所有的数
cout<<setw(5)<<a[k];
}
cout<<"\n";
}