任意输入10个整数的数列完成下列运算: 在排序好的数列中插入一个数,使数列保持从小到大的顺序。(

来源:百度知道 编辑:UC知道 时间:2024/05/28 04:39:15

排序用的调用函数,插入直接在主函数里搞了

#include<stdio.h>
main ()
{
void Rank(int N,int n[]);
int i,j,k;
int n[11];
printf("请输入10个整数:");
for(i=0;i<10;i++)
scanf("%d",&n[i]);
Rank(10,n); //调用函数对输入的数组排序
printf("\n请输入需要插入的整数:");
scanf("%d",&k);
if(k>n[9])
n[10]=k;
else
{
for(i=0;n[i]<=k;i++);
for(j=9;j>=i;j--)
n[j+1]=n[j]; //腾出位置,用以插入所输入的数
n[i]=k;
}
printf("\n排序后此数列按升序排列为:");
for(i=0;i<=10;i++)
printf("%-4d",n[i]);
}

void Rank(int N,int n[])
{
int i,k,iTemp;
for(k=1;k<=N-1;k++)
for(i=N-1;i>=k;i--)
if(n[i-1]>n[i])
{
iTemp=n[i];
n[i]=n[i-1];
n[i-1]=iTemp;
}
printf("排序后此数列按升序排列为:");
for(i=0;i<=N-1;i++)
printf("%-4d",n[i]);
printf("\n