1:在堆区申请10个连续空间,手动输入10个数(递增),输入关键字key,采用折半查找方式查找关键字是否存在,存在给出位置,不存在,输出查找失败。
注意:main函数在main.c 输入函数,输出函数,查找函数,在find.c
主函数
#include "fand1.h"
#define MAX 10
//在堆区申请10个连续空间,手动输入10个数
//(递增),输入关键字key,采用折半查找方
//式查找关键字是否存在,存在给出位置,
//不存在,输出查找失败。
//注意:main函数在main.c 输入函数,
//输出函数,查找函数,在find.c
int main(int argc,const char*argv[])
{
int *p = malloc(sizeof(int)*MAX);
int key= 0;
key = input_s(p);
sort_s(p,key);
return 0;
}
fand.h文件
int input_s(int *p);
int sort_s(int *p,int key);
fand.c文件
#include "myhead.h"
int input_s(int *p)
{
int i;
int key;
printf("请输入连续的十个数\n");
for(i=0;i<10;i++)
{
scanf("%d",p+i);
}
printf("请输入关键字key\n");
scanf("%d",&key);
return key;
}
int sort_s(int *p,int key)
{
int i=0,j=9,a = 10;
int m;
int flag = 1;
while(i<=j)
{
m= (i+j)/2;
if(key>*(p+m))
{
i = m+1;
flag = 0;
}
else if(key < *(p+m))
{
j = m-1;
flag = 0;
}
else if(key = *(p+m))
{
flag = 1;
break;
}
}
if(flag == 1)
{
printf("%d\n",m+1);
}
else
{
printf("查找失败\n");
}
return 0;
}
2:在堆区申请10个连续空间,手动输入10个数(乱序),采用简单选择排序,输出排序后的结果。
注意:main函数在main.c 输入函数,输出函数,排序函数,在sort.c
主函数
#include "fand2.h"
#define MAX 10
int main(int argc, const char*argv[])
{
int *p = malloc(sizeof(int)*MAX);
input_s(p);
sort_s(p);
ouput_s(p);
returen 0;
}
fand.h文件
int input_s(int *p);
int ouput_s(int *p);
int sort_s(int *p);
#include "myhead.h"
fand.c文件
#include "myhead.h"
#define MAX 10
int input_s(int *p)
{
int i;
printf("请输入十个数字\n");
for(i=0;i<MAX;i++)
{
scanf("%d",p+i);
}
return 0;
}
int ouput_s(int *p)
{
int i;
for(i=0;i<MAX;i++)
{
printf("%d ",*(p+i));
}
printf("\n");
return 0;
}
int sort_s(int *p)
{
int i,j,min;
for(i=0;i<MAX;i++)
{
min = i;
for(j=1+i;j<MAX;j++)
{
if(*(p+min)>*(p+j))
{
min = j;
}
}
j = *(p+i);
*(p+i) = *(p+min);
*(p+min) = j;
}
return 0;
}