输入一组大于等于0的整数,根据从大到小的顺序排序后输出;如果排序后有连续数时,只输出连续输的最大和最小数。输入的所有整数都各不相同,即不用考虑两个整数相同的情况。
如: 输入4,7,2,1,5,8,9,11 输出11,9,7,5,4,2,1
#include<iostream> using namespace std; void sort(int data[],int n)//选择排序,将输入的数组按小到大的顺序排列出来 {int i,j; for(i=0;i<n;i++) {int index=i; for(j=i+1;j<n;j++) {if(data[j]<data[index]) index=j;} if(i!=index){ int t=data[i];data[i]=data[index];data[index]=t;}} } void shanchu(int data[],int n){//函数的作用是删除连续的该元素 for(int i=7;i>=0;i--){ if(data[i]!=(data[i-1]+1)) cout<<data[i]<<" "; else {cout<<data[i]<<" "; while(data[i]==(data[i-1]+1)) {i--;}//当遇到连续数时,用i--来跳过该元素 cout<<data[i]<<" ";}}} int main() {int data[8];int i=0,n=0; cout<<"please input the original array:"; while(cin>>data[i++])n++; void sort(int data[],int n); sort(data,7); void shanchu (int data[],int n); shanchu (data,7); return 0; }