2016清华美院录取名单:问个有关C语言的编程题,哪位好心人帮我编一下

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 06:55:12
编写一个函数void fun(int a[],int x,int n),a数组中存放n个由大到小的有序树,函数的功能是:把x插入到a数组中,插入后的数仍然有序
我已经有该程序的核心片段
for(i=0;i<n;i++)
if(x>a[i])break;
for(j=n-1;j>=i;j--)
a[j+1]=a[j];
a[i]=x;
n++;
现在要完善该段程序,要怎么写啊??

#include<stdio.h>
int Insert (int a[],int x,int n) //这就是你的函数
{
int i,j;
for(i=0;i<n;i++)
if(x>a[i])
break;
for(j=n-1;j>=i;j--)
a[j+1]=a[j];
a[i]=x;
n++;
return n;
}
main()
{
int i=0;
int n=5,x;
int a[5] = {6,4,3,2,1 };
printf("Input the data x:\n");
scanf("%d",&x);
n=Insert(a,x,n);
for(;i<n;i++)
printf("\n%d\n",a[i]);
}
上面是我编的程序,已经运行通过了。

我说你是不是用的TC啊。。
说我写的不对
那我再给你写一遍
在TC上也可以过的

int total;

void fun(int a[],int x,int n)
{
int i,j;
for(i=0;i<n;i++)
{
if(a[i]>=x && a[i+1]<=x)
{
n++;
total++;
for(j=n;j>=i;j--)
{
a[j+2]=a[j+1];
}
a[i+1]=x;
break;
}
}
}

main()
{
int temp;
int num[100]={99,87,67,57,56,49,37,26,18,6};
scanf("%d",&temp);
total=10;
fun(num,temp,total);
for(int i=0;i<total;i++)
printf("%d\t",num[i]);
}

数据结构多看看,呵呵~