编写程序,任意输入10个整数的数列,先将整数按从大到小排序,再输入一个整数插入数列中,使数列保持原

编写程序,任意输入10个整数的数列,先将整数按从大到小排序,再输入一个整数插入数列中,使数列保持原有顺序... 编写程序,任意输入10个整数的数列,先将整数按从大到小排序,再输入一个整数插入数列中,使数列保持原有顺序 展开
 我来答
匿名用户
推荐于2017-12-15
展开全部
#include <stdio.h>
#define SIZE 20
void main()
{
printf("请输入10个整数:\n");
int a[SIZE];
int n=10,i,j,k,b;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
b=a[i];
    a[i]=a[j];
a[j]=b;
}
}
}
printf("排序后的数为:\n");
for(i=0;i<n;i++)
{
printf(" %d ",a[i]);
}
printf("\n");
printf("请输入要插入的一个数:\n");
int c;
scanf("%d",&c);
n=n+1;
for(i=0;i<n-1;i++)
{
      if(c>=a[i])
  {
  for(j=n-1;j>i;j--)
  {
             a[j]=a[j-1];
  }
  a[i]=c;
          printf("插入后的数组为:\n");
  for(k=0;k<n;k++)
  { 
              printf(" %d ",a[k]);  
  }
  printf("\n");
  return;
  }
}
}
//请采纳
更多追问追答
追问
调试了吗,这是实验题,我自己写的没调试出来
追答
你拿过去试一下不就知道了吗!。。。
天云小店
推荐于2018-06-29 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:763万
展开全部
#include <stdio.h>

void display(int a[], int n)
{
int i;
for(i=0; i<n; i++)
printf("%d ", a[i]);
printf("\n");
}

void StraightInsertionSort(int a[], int n)
{
int i, j, x; // x为哨兵
for(i=1; i<n; i++)
{
if(a[i] < a[i-1]) //若第i个元素大于i-1元素,直接插入。小于的话,移动有序表后插入
{
x = a[i]; //复制为哨兵,即存储待排序元素
a[i] = a[i-1]; //先后移一个元素
for(j=i-1; j>=0&&x<a[j]; j--)
a[j+1] = a[j];
a[j+1] = x; //插入到正确位置
}
}

}

void main()
{
int i, a[11];
int *StraightInsertionSortD;
StraightInsertionSortD = a;

printf("请输入10个整数(以空格隔开):");
for(i=0; i<10; i++)
scanf("%d", &a[i]);

printf("排序前:");
display(a, 10);

printf("\n排序后:");
StraightInsertionSort(StraightInsertionSortD, 10);
display(StraightInsertionSortD, 10);

printf("\n请输入需要插入的数据:");
scanf("%d", (StraightInsertionSortD+10));

printf("\n再次排序后:");
StraightInsertionSort(StraightInsertionSortD, 11);
display(StraightInsertionSortD, 11);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式