| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1348 人关注过本帖
标题:可以用函数调用的方法吗?
只看楼主 加入收藏
水漾花
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-11-9
收藏
 问题点数:0 回复次数:11 
可以用函数调用的方法吗?
1 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。
请问可以用函数调用的方法解吗?
拜托了!
搜索更多相关主题的帖子: 函数 元素 顺序 折半 输出 
2006-11-13 18:57
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 
可以,用递归就行了.

2006-11-13 19:04
水漾花
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-11-9
收藏
得分:0 

我还是不会,能不能更详细一点


2006-11-13 19:16
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 

#include<stdio.h>

int sort(int a[],int first,int last,int x)
{
int mid;
if (first<=last)
{
mid=(first+last)/2;
if (a[mid]==x)
return(mid);
else
if (a[mid]>x)
return(sort(a,mid+1,last,x));
else
return(sort(a,first,mid-1,x));
}
return(-1);
}

int main()
{
int a[15]={100,97,91,85,76,71,66,56,45,34,24,19,15,9,1};
int x;
printf("input the number you want to search\n");
scanf("%d",&x);
if (sort(a,0,14,x)==-1)
printf("the number is not in the array\n");
else
printf("The number is No.%d\n",sort(a,0,14,x)+1);
return 0;
}


2006-11-13 19:47
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 
需要注释吗?

2006-11-13 19:48
水漾花
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-11-9
收藏
得分:0 
如果你愿意的话,我也不反对

2006-11-13 19:53
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 
以下是引用guzhou在2006-11-13 19:47:37的发言:

#include<stdio.h>

int sort(int a[],int first,int last,int x)
{
int mid;
if (first<=last)
{
mid=(first+last)/2; //判断中间值与x大小关系
if (a[mid]==x) //=则找到
return(mid);
else
if (a[mid]>x) //>则在后半段找,递归
return(sort(a,mid+1,last,x));
else //<则在前半段找,递归
return(sort(a,first,mid-1,x));
}
return(-1);
}

int main()
{
int a[15]={100,97,91,85,76,71,66,56,45,34,24,19,15,9,1};
int x;
printf("input the number you want to search\n");
scanf("%d",&x);
if (sort(a,0,14,x)==-1)
printf("the number is not in the array\n");
else
printf("The number is No.%d\n",sort(a,0,14,x)+1);
return 0;
}


2006-11-13 19:58
水漾花
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-11-9
收藏
得分:0 
if (sort(a,0,14,x)==-1)这个是什么意思
sort(a,0,14,x)+1);为什么加1呀


2006-11-13 20:22
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 
以下是引用水漾花在2006-11-13 20:22:33的发言:
if (sort(a,0,14,x)==-1)这个是什么意思 既没找到该数
sort(a,0,14,x)+1);为什么加1呀 数组不是从0开始的吗,
下标为x的是第x+1个数


2006-11-13 20:31
水漾花
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-11-9
收藏
得分:0 
谢谢!

2006-11-14 08:06
快速回复:可以用函数调用的方法吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017431 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved