c语言的一个小编程

来源:百度知道 编辑:UC知道 时间:2024/06/30 14:44:57
题目是 在有序的数列中插入若干个数,使数列在插入过程中始终保持有序
高手帮写一下 最好注释一下谢谢

#include"string.h"
#include<stdio.h>
void main()
{
int n,i,j,insert,a[100];
printf("please input n:\n");//输入数的个数n
scanf("%d",&n);
printf("please input n number:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);//输入有序的n个数
printf("insert:\n");
scanf("%d",&insert);//输入插入的那个数insert
for(i=0;i<n;i++)
if(a[i]>insert)
break;//比插入的数大的退出循环,记下此时i的数值
for(j=n;j>i;j--)
a[j]=a[j-1];//比插入的数大的往后移
a[i]=insert;//往后移之后空出的一位给插入的数
printf("the new array is:\n");//输出插入之后仍有序的数组
for(i=0;i<n+1;i++)
printf("%d ",a[i]);
printf("\n");
}

中间的循环也可以替换成下面:
for(i=n-1;i>=0;i--)
{if(a[i]<insert)
{a[i+1]=insert;
break;}
else
a[i+1]=a[i];}