编程.主函数中输入10个整数. (1)子函数将数用选择法降序排序; (2)子函数插入一个整数data,仍为降序序列.

大佬们谁会啊?急急急!

#include <iostream>
#define N 100 //预定义数组长度
using namespace std;

typedef int DataType;//用DataType指代类型int,方便下面的交换,排序函数重用
//要对其它类型数据作排序时,只需要改变这个指代类型就行了

void Swap(DataType &a, DataType &b){//交换两个变量值
    DataType t=a;
    a=b;
    b=t;
}
void SelectSort(DataType r[] , int length)
/*对记录数组r做简单选择排序,length为待排序记录的个数*/
{
    int i,j,k;   
    for (i=0 ; i< length-1 ; ++i){ //n-1趟排序
        k=i;
        for (j=i+1;j < length;++j)
            if (r[j] < r[k] )
                k=j;
        if ( k!=i){//若无序区最小元素不是(无序区)第一个元素,进行交换   
            Swap(r[i],r[k]);
        }    
    }
}
void Insert(DataType r[],DataType data,int length)
/*在原实际长度为length的数组上插入一个数据data*/
{
    r[length]=data;
    SelectSort(r,length+1);
}
int main()
{
    DataType arr[N];
    DataType t,k=0;

    while(cin>>t &&k!=10){ //输入10个整数
       // if(t==0)break; //调试用  
        arr[k++]=t;
    }
    SelectSort(arr,k);//排序
    for(DataType i=0;i!=k;++i)//输出排序结果
        cout<<arr[i]<<" ";
    cout<<endl;
    cin>>t;//输入新数据
    Insert(arr,t,k);//插入
    for(DataType i=0;i!=k+1;++i)//输出结果
        cout<<arr[i]<<" ";
    cout<<endl;

    return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答