移动端rem不起作用:C程序编辑的问题???

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/07 19:52:15
请编写函数void fun(int *a, int n, int y),它的功能是: 把y值插入到有n个数的a数组中,a数组中的数已按由大到小的次序排好, y的值从键盘
读入. 插入后, 数组中的数仍然有序. 对照下面三种情况运行程序:
1) 插在最前 2) 插在最后 3) 插在中间
若输入数11, 输出 20 18 16 14 12 11 10 8 6 4 2
输入数1, 输出 20 18 16 14 12 10 8 6 4 2 1
输入数33, 输出 33 20 18 16 14 12 10 8 6 4 2 */

#include <stdio.h>
void fun(int *a,int n,int y)
{
}
main()
{int i,a[11]={20,18,16,14,12,10,8,6,4,2},x;
void fun(int *,int n,int y);
scanf("%d",&x);
fun(a,10,x);
for(i=0;i<11;i++)
printf("%d ",*(a+i));
}

/*这是我编写的一个插入数字的程序,你稍做修改即可*/
#include"stdio.h"
#include"conio.h"
void input(int a[],int n)
int i;
printf("请按从小到大的顺序输入一组数:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
return;
}
void main(void)
{
int a[100],i,x,n,top,bot,find,mid;
printf("请输入数组中元素的个数n:\n");
scanf("%d",&n);
input(a,n);
printf("请输入欲插入的数字x:\n");
scanf("%d",&x);
printf("插入数字后的数列为:\n");
if(x<a[0])
{
for(i=n;i>0;i--)
a[i]=a[i-1];
a[0]=x;
}
else if(x>a[n-1])
a[n]=x;
else
{
top=0;
bot=n-1;
find=0;
do
{
mid=(top+bot)/2;
if(x==a[mid])
{
for(i=n;i>mid+1;i--)
a[i]=a[i-1];
a[mid+1]=x;
find=1;
}
else if(x<a[mid]&&x>a[mid-1])
{
for(i=n;i>mid;i--)
a[i]=a[i-1];
a[mid]=x;
find=1;
}
else if(x>a[mid]&&x<a[mid+1])
{
for(i=n;i>mid+1;i--)
a[i]=a[i-1];
a[mid+1]=x;
find=1;
}
else if(x<a[mid])
bot=mid;
else if(x>a[mid])
top=mid;
}
while(find==0);
}
for(i=0;i<n+1;i++)
printf(" %d",a[i]);
printf("\n");
getch();
}