请高手帮忙解答一道c语言题

#include<stdio.h>
int fun(int a[],int m)
{int low=0,high=9,mid;
while(low<=high)
{mid=(low<=high)/2;
{if(m<a[mid])
high=mid-1;
else if(m>a[mid])low=mid+1;
else return(mid);}return(-1);}
main()
{int i,k,m,a[10]={-3,4,7,9,13,45,67,89,100,180};
for(i=0;i<10;i++)printf("%d ",a[i]);
printf("\nenter m:");scanf("%d",&m);
k=fun(a,m);
if(k>=0)printf("m=%d,index=%d\n",m,k);
else printf("not be found\n");}
哪里出了错?老是提示说有错误,没办法运行

是小问题。我帮你改了下,可以了
#include<stdio.h>
int fun(int a[],int m)
{
int low=0,high=9,mid;
while(low<=high)
{
mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
else if(m>a[mid])
low=mid+1;
else return(mid);
}
return (-1);
}
main()
{
int i,k,m,a[10]={-3,4,7,9,13,45,67,89,100,180};
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\nenter m:");
scanf("%d",&m);
k=fun(a,m);
if(k>=0)
printf("m=%d,index=%d\n",m,k);
else
printf("not be found\n");
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言高手,帮帮忙
然后在执行i=st%i,因为初值i=10,经过执行第一句后st=75,所以i=75%10 ,所以是5 (8) !(非) &&(且) ||(或)(9) 1,2,3 因为if的条件是a>c,那么要当a>c成立的时候,才执行后面的语句,但是初值给出了a=1,c=3,所以,不执行后面的语句,所以还是现实原来的值 (10)x=0;...

C语言高手进,帮忙解答一下下列各题的标准答案。此题是我的重要复习题...
50.如果a[i]

请各位C语言高手帮忙解决下面的问题。
int target = 0;printf("请输入15个数:\\n");for(i=0; i<15; i++){ scanf("%d", a+i);} printf("\\n请输入要查找的数:\\n");scanf("%d", &target);ret = binary_find(a, target, 0, 14);if(-1 != ret){ printf("\\n%d找到了, 它是a[%d]\\n", target, ret);} ...

C语言的题目高手帮忙解释下 printf ("%d\\n",p);printf ("%d\\n...
p+9,由于p是int型指针,int占两个字节,p+9的值比p的值多2*9=18 正解应是 A 212 由于题目已经说了int为2字节,你调试的机器上int是4字节,所以会差36

请C语言高手帮忙解答一下下列各题的标准答案。此题是我的重要复习题,不...
C语言老手为你解答:CBCCC CCAC(C)DDDA 。第1题已确定选C,不必怀疑,(只有新手才会错选D);第10题如果是你无意漏掉了C的分号,那么原题选C,如果原题就没分号,那么原题没有答案;第14题出的不太好,因为这个程序的错误有多种纠正方法(纠正的位置不同),因此关于它出错的地方也可以有多种...

求高手帮忙做一些C语言试题
C、log10()E、pow()F、isalpha()第三题、判断题(每题1分,5道题共5分)1、表达式18\/4*sqrt(4.0)\/8值的数据类型为double。正确 2、逻辑关系“a≥10或a≤0”正确表示的C语言表达式是:a>=10 or a<=0 。错误 3、a=b=58是合法的C语言赋值表达式。正确 4、C语言表达式值的类型...

C语言高手帮忙做这三道题,要详解 谢谢拉!!
1、A while()是判断括号里的是真还是假,若表达式为0,就是假,若表达式非0,就是真。"!"是非逻辑运算符,简单说就是把非0变成0,把0变成1。。。"while(!x)”就是"(!x)"取真是进行循环,就是"!x"的值为非0时,就是"x"的值为0时。所以就是x==0.2、C 这题和上题一样,就是(m...

C语言的问题 高手来帮忙啊 线上等
{int x,y,z;for(x=0;x<=300;x+=3)\/\/你先注意for语句的语法,要用; x==0不对,我们需要的赋值,而不是判断 x<=300,因为铅笔最多可买300支 x+=3,因为要用完整数元铅笔的数量一定是3的倍数 如果你x+=3不能立即 可以写成x=x+3 for(y=0;y<=20;y++)\/\/道理同上 for...

c语言编程题,请高手帮忙做一下,拜谢,急急急急……
1.include <stdio.h> double funcPi(int);int main(void){ int arg;printf("Input the argument: ");\/\/ \/\/ 无异常输入 \/\/ while (!scanf("%d", &arg)){ printf("Check your input and retry: ");while (getchar()!='\\n'){ continue;} } while (getchar()!='\\n'){ continue...

几道c语言题目 菜鸟望高手解答
第一道题:输出的是:0 1 3 4 \/\/因为for循环 i从0到4 但是当i等于2的时候执行了continue,也就是直接跳转到下一次循环,所以2没有输出 第二题:t为2 因为 if-else 结构中的else是和最近一个if相匹配的,又因为if(x<y)不成立,所以直接执行输出语句,即输出2 第三题:3 6 9 因为x被...

相似回答