C语言题:有15个数,乱序的,存放在一个数组中,输入一个数,要求找出该数是数组中的第几个元素的值。

C语言题:有15个数,乱序的,存放在一个数组中,输入一个数,要求找出该数是数组中的第几个元素的值。若果该数不在数组中,则打印出“无此数”
用两种方法做,一种是折半查找法,还有一种就用常规的方法。

#include <stdio.h>
void main()
{
int a[15]={15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
int i,left=0,right=14,flag=0,d,mid;
printf("输入数值:");
scanf("%d",&d);
if(d < a[14]||d >a[0])
{ printf("\nchon gxin:");
scanf("%d",&d);}
for(i=1;i <5;i++) //16个最多比较4次
{
mid=(left+right)/2;
if(d==a[mid])
{
printf("第 %d 个.\n",mid);
flag=1;break;
}
else if(d>a[mid])
right=mid-1;
else left=mid+1;
}
if(flag==0) printf("无效.\n");
}追问

大神还有种方法呢?
一会采纳

大神

帮人帮到底吧

追答

什么意思 还有种方法呢 是不是 另一种 你指的是哪一种 因为程序 有好多种写法

追问

一种折半查找法,一种是一个一个的比较

追答

#include
int main()
{
int arr[15],i,val;
printf("输入15个数数:");
for(i=0;i=0 && i<15)
printf("第%d个\n",i+1);
else
printf("无此数\n");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-20
呵呵
我写过这类的,还在吗》哥们追问

代码呢?

追答

收费哦

需要吗?

追问

收费不要

追答

好的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网