C语言简单题目,大家帮帮忙啊

来源:百度知道 编辑:UC知道 时间:2024/05/15 10:39:40
有一个已按降序排列的数组中,现输入一个任意整数,要求使用折半法按原来排序的规律将它插入数组中。假设数组为a[10]={50,42,38,25,10,7,6,3,0}

int m[N] n[N+1];\\数组长度n自己设
int t,i,low,high,mid;\\设置上下标志和参量
low=0;high=N-1;\\参量初始化
printf("please input the data:%d \n",t);\\输入插入数据
while (!(t<m[mid]&&t>m[mid+1]))\\插入条件
{mid=(low+high)/2;\\二分法查找
if (t>m[mid])
high=mid-1;
if(t<m[mid])
low=mid+1;
}
for(i=0,i<n+1,i++)\\插入另外的数组
{if (i<mid)
n[i]=m[i];
else n[i]=t;
if (i>mid)
n[i]=m[i+1]
}

这个很容易把,看看折半算法,很快写出来的,你要是不会,网上估计都能搜到

这是错误的算法.不过给你提方法.程序是对的.算法是错的
#include <stdio.h>
#define N 10
void main ( )
{
int i,j,number,top,bott,mid;
int a[10]={50,42,38,25,10,7,6,3,0} ;
int *p,*q;
p=&a[1];
q=&a[4];

printf("请输入数据:");
scanf("%d",&number);

top=0;
bott=N-1;
if (number>a[0]){
a[0]=number;
for(i=1;i<10;i++)