一道c程编程题 来帮帮我

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:51:51
请编写函数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)
{
}
void 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>

void fun(int *a,int n,int y)
{
int i;
for ( i=n; i>=0;i-- )
{
if ( y > a[i] )
{
a[i+1] = a[i];
}
else
break;
}
a[i+1] = y;
}
void 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));
}