各位大侠帮帮忙看看下面的程序是怎么运行的? 麻烦详细叙述一下分析过程 5
写出下列程序的输出结果。#include<stdio.h>#include<string.h>intf(charc,char*s){intm,n,h;for(n=0,h=...
写出下列程序的输出结果。
#include <stdio.h>
#include <string.h>
int f(char c, char* s)
{ int m,n,h;
for(n=0,h=strlen(s);n<=h; ) {
m=(n+h)/2;
if(c<s[m]) h=m-1;
else if(c>s[m]) n=m+1;
else return m;
}
return –1;
}
void main( )
{ printf(“%d ”,f( ‘g’ , ”abdgkmxy” ));
printf(“%d\n”,f( ‘C’ , ”BQMAXYZOTE” ));
} 展开
#include <stdio.h>
#include <string.h>
int f(char c, char* s)
{ int m,n,h;
for(n=0,h=strlen(s);n<=h; ) {
m=(n+h)/2;
if(c<s[m]) h=m-1;
else if(c>s[m]) n=m+1;
else return m;
}
return –1;
}
void main( )
{ printf(“%d ”,f( ‘g’ , ”abdgkmxy” ));
printf(“%d\n”,f( ‘C’ , ”BQMAXYZOTE” ));
} 展开
1个回答
展开全部
你首先得知道,void main()是程序入口,int f()是函数调用。
其次 int f(char c,char *s )是函数的声明,这里传入两个参数 char型的c 和char型的指针的s
其次f里面具体做的是两分法字母排序,最后返回字母在字符串中的大小顺序
楼主可以把字母传入然后去看,g传入,返回m 于是m=4
第二次 C在里面没有找到,去比较C<X 所以h=4 再次去比较到2 ,还是小 于是到B,发现大了,于是C就在第二位 返回2
于是最后就输出 4 2
请采纳。
其次 int f(char c,char *s )是函数的声明,这里传入两个参数 char型的c 和char型的指针的s
其次f里面具体做的是两分法字母排序,最后返回字母在字符串中的大小顺序
楼主可以把字母传入然后去看,g传入,返回m 于是m=4
第二次 C在里面没有找到,去比较C<X 所以h=4 再次去比较到2 ,还是小 于是到B,发现大了,于是C就在第二位 返回2
于是最后就输出 4 2
请采纳。
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询