期中考试,c++。从键盘输入10个数到数组,调用排序函数对其进行排序(...
期中考试,c++。从键盘输入10个数到数组,调用排序函数对其进行排序(降序),再从键盘输入一个数,调用函数,将数插入形成一个新的降序排列的数组。急求哈...
期中考试,c++。从键盘输入10个数到数组,调用排序函数对其进行排序(降序),再从键盘输入一个数,调用函数,将数插入形成一个新的降序排列的数组。急求哈
展开
4个回答
展开全部
#include <iostream>
using namespace std;
//降序排列
void Rank(int a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[j]>a[i])
{
int t=a[j];
a[j]=a[i];
a[i]=t;
}
}
//插入函数
void Insert(int a[],int n,int e)
{
int i,j;
for(i=0;i<n;i++)
if(e>=a[i])
{
for(j=n;j>i;j--) //将小的数后移
a[j]=a[j-1];
a[i]=e;
break;
}
}
void main()
{
int a[11]; //可以将其规模再扩大一些
int i;
cout<<"请输入10个数:";
for(i=0;i<10;i++)
cin>>a[i];
Rank(a,10);
cout<<"降序排列为: ";
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入要插入的数:";
cin>>i;
Insert(a,10,i);
cout<<"重新排列为: ";
for(i=0;i<11;i++)
cout<<a[i]<<" ";
cout<<endl;
}
using namespace std;
//降序排列
void Rank(int a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[j]>a[i])
{
int t=a[j];
a[j]=a[i];
a[i]=t;
}
}
//插入函数
void Insert(int a[],int n,int e)
{
int i,j;
for(i=0;i<n;i++)
if(e>=a[i])
{
for(j=n;j>i;j--) //将小的数后移
a[j]=a[j-1];
a[i]=e;
break;
}
}
void main()
{
int a[11]; //可以将其规模再扩大一些
int i;
cout<<"请输入10个数:";
for(i=0;i<10;i++)
cin>>a[i];
Rank(a,10);
cout<<"降序排列为: ";
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入要插入的数:";
cin>>i;
Insert(a,10,i);
cout<<"重新排列为: ";
for(i=0;i<11;i++)
cout<<a[i]<<" ";
cout<<endl;
}
展开全部
#include<iostream>
#define N 100
using namespace std;
void arraySort(int s[],int n);
void insertNum(int s[],int n,int num);
int main()
{int p[N],num;
cout<<"请输入十个数:";
for(int i=0;i<10;i++)
cin>>p[i];
arraySort(p,10);
cout<<"排序后数为:";
for(int i=0;i<10;i++)
cout<<p[i]<<' ';
cout<<endl;
cout<<"请输入一个想要插入的数:";
cin>>num;
insertNum(p,10,num);
cout<<"插入数后排序为:";
for(int i=0;i<11;i++)
cout<<p[i]<<' ';
return 0;
}
void arraySort(int s[],int n)
{bool exchange;
while(n>1)
{exchange=false;
for(int i=0;i<n-1;i++)
if(s[i]<s[i+1])
{int temp=s[i];
s[i]=s[i+1];
s[i+1]=temp;
exchange=true;
}
if(!exchange) break;
n--;
}
}
void insertNum(int s[],int n,int num)
{int i;
for(i=0;i<n;i++)
if(s[i]<num)
{for(int j=n-1;j>=i;j--)
s[j+1]=s[j];
s[i]=num;
break;
}
if(i==n) s[n]=num;
}
#define N 100
using namespace std;
void arraySort(int s[],int n);
void insertNum(int s[],int n,int num);
int main()
{int p[N],num;
cout<<"请输入十个数:";
for(int i=0;i<10;i++)
cin>>p[i];
arraySort(p,10);
cout<<"排序后数为:";
for(int i=0;i<10;i++)
cout<<p[i]<<' ';
cout<<endl;
cout<<"请输入一个想要插入的数:";
cin>>num;
insertNum(p,10,num);
cout<<"插入数后排序为:";
for(int i=0;i<11;i++)
cout<<p[i]<<' ';
return 0;
}
void arraySort(int s[],int n)
{bool exchange;
while(n>1)
{exchange=false;
for(int i=0;i<n-1;i++)
if(s[i]<s[i+1])
{int temp=s[i];
s[i]=s[i+1];
s[i+1]=temp;
exchange=true;
}
if(!exchange) break;
n--;
}
}
void insertNum(int s[],int n,int num)
{int i;
for(i=0;i<n;i++)
if(s[i]<num)
{for(int j=n-1;j>=i;j--)
s[j+1]=s[j];
s[i]=num;
break;
}
if(i==n) s[n]=num;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己编写排序函数,可以是最简单的冒泡排序,通过参数调用就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询