论如何用一个代码实现一堆数字的排序,删除,插入,查找。
这当然少不了我们在数组上的操作,将这些看成一个个小功能,接下来我们为了使结构直观,这里我用函数来实现这些功能
首先是声明
//功能
void Function();
//排序
void Sort(int i,int num);
//查找
void Find(int z);
//插入
void Insert(int x);
//删除
void Delete(int y);
现在我们来一个一个分析,首先是排序
void Sort(int i,int num) //num表示数的个数,i为数组下标
{
int min=0,t=0,j;
for(i=0;iarr[j])
{
min=j; //min是大的时候就赋小的给它
}
}
t=arr[i]; //交换i和min。实现排序
arr[i]=arr[min];
arr[min]=t;
}
printf("排序后的顺序为:n");
for(i=0;i
这个函数就实现了数组的排序,接下来是插入
void Insert(int x)
{
int j;
printf("请输入你要插入的数:n");
scanf("%d",&x);
for(i=0;ix) //确定插入位置
{
break;
}
}
for(j=num-1;j>=i;j--) //将确定x位置后的数全部后移动一位,腾出位置
{
arr[j+1]=arr[j];
}
arr[i]=x; //再插入x
printf("插入%d后,新的顺序为:n",x);
num++; //注意插入一个数数组元素个数加一
for(i=0;i
这个我们是默认从小到大的顺序才能插入,所以我们用这个函数之前记得先使用排序
完成后接下来是删除
void Delete(int y)
{
int j;
printf("请输入你要删除的数:n");
scanf("%d",&y);
for(i=0;inum) //全都查一遍后i>num表示没有这个元素,提示不存在
printf("预删除的数不存在n");
else
{
for(j=i;j
删除元素前要查找到这个元素,所以我们这里间接完成了查找的函数,但这有一个bug,就是查找到一个后就break跳出了
void Find(int z)
{
printf("请输入你要查找的数:n");
scanf("%d",&z);
for(i=0;inum)
printf("您查找的数不存在n");
}
这里意思一样,找到一个就跳出,
最后有意思的来了,原本这些函数可以直接使用在主函数中,但我想使用一个功能函数,可以选择这些功能随便使用,看下面:
void Function()
{
int x,y,z;
char input[10]; //定义一个字符串数组
printf("请选择您要进行的操作:n");
printf("******0.排序******n") ;
printf("******1.插入******n") ;
printf("******2.查找******n") ;
printf("******3.删除******n") ;
printf("******4.退出******n") ;
while(1) //这让我们可以重复使用
{
begin:
scanf("%s",input); //这里判断是否功能选择正确,正确就调用
if(strcmp(input,"排序")==0)
{
Sort(i,num);
}
else if(strcmp(input,"插入")==0)
{
Insert(x);
}
else if(strcmp(input,"查找")==0)
{
Find(z);
}
else if(strcmp(input,"删除")==0)
{
Delete(y);
}
else if(strcmp(input,"退出")==0)
{
break; //跳出很关键
}
else { //错误就提示重新选择
printf("请勿选择无关操作,请重新选择n");
goto begin; //goto的作用体现出来了
}
printf("请继续选择操作:n");
}
printf("操作结束,感谢使用!n"); //退出就结束
}
这里制作了一个类似游戏主界面的调用功能函数,咳咳无聊敲的。
然后我们看主函数,我建议这里边看边想过程
int main ()
{
printf("您要输入的数字个数为:n") ;
scanf("%d",&num) ; //自定义数的个数
printf("请输入%d个数字:n",num); //输入这些数
for(i=0;i
我们这里灵活定义数的个数,然后用数组和循环实现数组初始化,也就是这些数的初始状态。
看完这里你是不是会想主函数里没定义num和i?先等等
让我们接着看总代码:
//设计一个代码实现n个数的排序,插入,删除,查找。
#include
#include //功能中比较了字符串,使用字符串库函数
//功能
void Function();
//排序
void Sort(int i,int num);
//查找
void F服务器托管网ind(int z);
//插入
void Insert(int x);
//删除
void Delete(int y);
//这里我们整个代码都使用了num和i
int num,i; //所以我们定义它们为全局变量
int arr[10000]; //数组也一样赋10000,控制长度足够
int main ()
{
printf("您要输入的数字个数为:n") ;
scanf("%d",&num) ;
printf("请输入%d个数字:n",num);
for(i=0;iarr[j])
{
min=j;
}
}
t=arr[i];
arr[i]=arr[min];
arr[min]=t;
}
printf("排序后的顺序为:n");
for(i=0;ix)
{
break;
}
}
for(j=num-1;j>=i;j--)
{
arr[j+1]=arr[j];
}
arr[i]=x;
printf("插入%d后,新的顺序为:n",x);
num++;
for(i=0;inum)
printf("预删除的数不存在n");
else
{
for(j=i;jnum)
printf("您查找的数不存在n");
}
void Function()
{
int x,y,z;
char input[10];
printf("请选择您要进行的操作:n");
printf("******0.排序******n") ;
printf("******1.插入******n") ;
printf("******2.查找******n") ;
printf("******3.删除******n") ;
printf("******4.退出******n") ;
while(1)
{
begin:
scanf("%s",input);
if(strcmp(input,"排序")==0)
{
Sort(i,num);
}
else if(strcmp(input,"插入")==0)
{
Insert(x);
}
else if(strcmp(input,"查找")==0)
{
Find(z);
}
else if(strcmp(input,"删除")==0)
{
Delete(y);
}
else if(strcmp(input,"退出")==0)
{
break;
}
else {
printf("请勿选择无关操作,请重新选择n");
goto begin;
}
printf("请继续选择操作:n");
}
printf("操作结束,感谢使用!n");
}
接下来就是运行了,让我们服务器托管网看看:
您要输入的数字个数为:
10
请输入10个数字:
10 9 8 7 6 5 4 3 2 1
请选择您要进行的操作:
******0.排序******
******1.插入******
******2.查找******
******3.删除******
******4.退出******
排序
排序后的顺序为:
1 2 3 4 5 6 7 8 9 10
请继续选择操作:
插入
请输入你要插入的数:
11
插入11后,新的顺序为:
1 2 3 4 5 6 7 8 9 10 11
请继续选择操作:
删除
请输入你要删除的数:
1
删除1后,新的顺序为:
2 3 4 5 6 7 8 9 10 11
请继续选择操作:
查找
请输入你要查找的数:
11
查找成功,11是第10个数
请继续选择操作:
查找
请输入你要查找的数:
12
您查找的数不存在
请继续选择操作:
退出
操作结束,感谢使用!
--------------------------------
Process exited after 123.2 seconds with return value 0
请按任意键继续. . .
这里我选择10个数字,分别是1 2 3 4 5 6 7 8 9 10
然后选择排序,结果如上所示
再选择插入11和删除1的操作,同样看到上面
然后查找11和12,11显示成功和所在位置,12显示不存在,如上所示
最后退出,提示结束
当然也可以继续使用功能,这里就你们自己去玩玩吧
最后像上面说的,这个代码还有很多不足,但也足够实现功能,实现的方法也多种多样
试试看其他方法,也可以改进功能,来完善它吧!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 使用Apache HttpClient爬取网页内容的详细步骤解析与案例示例
Apache HttpClient是一个功能强大的开源HTTP客户端库,本文将详细介绍如何使用Apache HttpClient来爬取网页内容的步骤,并提供三个详细的案例示例,帮助读者更好地理解和应用。 一、导入Apache HttpClient库 在项目的p…