一个头疼的题目C语言

有一个这样的题目:
有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。
这个题我看了答案,好长的程序呀,有两页多纸了,太复杂了,有哪个高手能想出一种简便的程序吗?

有那么夸张么……????
两页多纸……!!!多大的纸哈?
我来写个吧,要说也挺简单的呀……
#include <stdio.h>
#define R 15
int main(void)
{
int a[R]={2,5,6,8,11,15,18,20,22,40,60,70,88,90,99};
int low,high,m,i,x;
printf("\nInput the number:__\b\b");
scanf("%d",&x);
low=0;
high=15;
while(low<=high)
{
m=(low+high)/2;
if(x==a[m]) break;
else if (x>a[m]) low=m+1;
else high=m-1;
}
if(low<=high)
printf("%d is found ,the position is %d",x,m); /*这里的m是从0算的要是从1开始算数组中元素就把m改成m+1*/
else
printf("%d is not found \n",x);
getch();
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-05-06
哈 楼主真是会开玩笑
如果真是这样的话那两页纸可真有够小了
在谭浩强的书上就有这个算法
第2个回答  2006-05-06
二分法查找是对顺序表的一种基本查找模式,代码也几乎是一样的,所以应该没有什么简便方法,你说代码很长,但实际上代码长但是很好懂的~
第3个回答  2006-05-06
94你要200分,就给你做!
第4个回答  2006-05-06
楼上说的对呀
第5个回答  2006-05-06
这样的问题应该悬赏200分嘛```要不然谁会肯花时间给你解答呢?

C语言设计问题!
fread(&stud[i],sizeof(struct student),1,fp); printf("\\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\\n"); printf("\\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average); } fclose(fp);}void query() ...

C语言连理枝链表程序设计问题
你的这个要求绝对是不可能有人满足你的。因为你的这个要求已经是一个 C 语言大作业了,而不只是一个简单的 C 语法问题出错,让网上熟悉 C 语言的朋友帮助你分析一下了。而且在 C 语言的课程中,C 语言中最、最精华的部分、同时也是最令人调试程序起来最令人头疼的部分就是:C 语言提供的指针功能!

编写一个 C语言程序,要求输入一个整数,打印从该数到比该数大1 0的所...
for(int i=n;i<n+10;i++)printf("%d ", i);这个算法你很头疼……

以下用C语言要怎么写出来?公式是怎么?
int a,b,c;scanf("%d%d",&a,&b);c=-3203-b+1;printf("%d\\n",c);return 0;}

C语言哪个部分最困难?
也看了大家回答,基本上都是指针难,只要完全理解这一大章才算进入C的殿堂,抽象,逻辑,悟性都必须。至于英语高中水平足矣。

初学C语言,有一问题想请教
for循环的第二段显然有问题,因为输入任意一个大于2的数,肯定跳出循环,一次循环都不执行。改动如下:到这里 输入一个正整数,貌似是对了,还没考虑输入一个负整数。由于是1+2-3+4-5+6...,所以要舍掉输入的负数 输入负数直接进不去for循环,所以已经是for循环之外的事了。以JAVA和C的共同点,...

计算机二级C语言考试心得
本文分享了一位2023年3月考生的计算机二级C语言考试经验与心得。首先,关于“计算机二级C语言好过吗?”的回答是:难度因人而异。对于代码一无所知,且对代码感到头疼的人来说,这是一道难关。学习代码时,重点应放在理解算法与思路,而不仅仅是代码本身。代码只是思路的具象化,其核心在于如何实现思路。

c语言问题
如果是一个超出了数值存储范围的“大数”的话,比如你说的10的100次方级别,那么只有把这个数值作为一个数字字符的序列来存储,然后计算的方式有很多种,我给出一种,权当抛砖引玉:求13的余数,可以分段来做,因为(a + b) \/ c = a \/ c + b \/ c,所以你可以截取一段相对较小的字符序列,...

计算机二级C语言好考吗?麻烦大家帮帮忙吧!(我是天津的)
C语言前面的那些概念可以大概看下就是,不过要有一定的映像。然后就是C语言的基础———数据定义和各种结构 这里你一定要慢慢看,千万不能急,因为这里是C语言的基础,刚开始我不提倡多做题,因为打基础的时候多做题目还不如吃透一道题目。这里你要多实践,多去想答案是怎么来的,要一步一步的去分析...

对于一个完全没有接触过C语言的人,有可能经过三个月的学习通过计算机二 ...
没有问题,我有一个老师是做二级C语言培训的,他培训C语言要上30天的课,每天3个小时(只是上课时间,下课还要自己复习)。真正的问题是,你一定要坚持住,因为有好多人都是学了一个星期,没兴趣了,就放弃了。我学C的时候,有些难点,很头疼,1、数据类型部分,理解到并不困难,可是都是要记住的...

相似回答