帮我分析下c语言程序输出的结果是多少

void main()
{
int a[]={23,43,1,53,232,33};
printf("%d",g(0,5,a))
}
int g(int i, int j, int *a)
{
if(i>=j) return a[i];
int k=(i+j)/2;
int t1,t2;
t1=g(i,k,a);
t2=g(k+1,j,a);
if(t1<t2)) return t1;else return t2;
}
要说明为什么??谢谢。。
被几个函数调来调去晕了。。

}
t2=g

g

输出的应该是1 。我没有调试过
这个应该是用分治的方法求最小值
它的步骤是这样,它将数组分成若干个两个部分,然后返回最小的两个部分的最小值,再与之前的另一部分比较值
先 比较 23,43 ,它返回23
然后用 23与1比较,返回1
53与232比较,返回53
53与33比较,返回33
最后,1与33比较,返回1
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-10
#include "stdafx.h"
int g(int i, int j, int *a);
void main()
{
int a[]={23,43,1,53,232,33};
printf("%d\n",g(0,5,a));
}
int g(int i, int j, int *a)
{
if(i>=j) return a[i];
int k=(i+j)/2;
int t1,t2;
t1=g(i,k,a);
t2=g(k+1,j,a);
if(t1<t2) return t1;
else return t2;
}
递归折半查找最小值。
第2个回答  2012-03-11
二分查找,找最小值,QQ1781174289

帮我分析下c语言程序输出的结果是多少
输出的应该是1 。我没有调试过 这个应该是用分治的方法求最小值 它的步骤是这样,它将数组分成若干个两个部分,然后返回最小的两个部分的最小值,再与之前的另一部分比较值 先 比较 23,43 ,它返回23 然后用 23与1比较,返回1 53与232比较,返回53 53与33比较,返回33 最后,1与33比较,返...

c语言程序输出的结果为多少?
所以说“--a”输出的结果为11,“++b”输出的结果为13。

帮忙分析C语言程序输出结果是什么!
11

C语言程序输出结果是多少
以下程序的输出结果是main(){intk=17;printf("%d,%o,%x\\n",k,k,k);} 结果:17,21,11。d是以十进制输出;x是以十六进制输出;o是以八进制输出;所以把17转换为对应的进制。

c语言 下边这两个的输出结果是多少?讲解一下谢谢
第一题输出的结果是:0 2 1 4 2 8 第二题没有输出,不过执行完之后,x和*y的值都是85546 解释:第一题,当 y小于5的时候会循环执行大括号内的内容。y的值从1开始,每次循环会乘以x的值,于是y的变化:1 --> 2 --> 4 --> 8 i最开始是0,每次在输出之后才自增1,因此i的...

C语言编程题,结果是多少?
后面当程序运行到i>15时,已经不符合打印的条件所以不再打印。另外,打印语句中,没有任何间隔或分隔符号,所以程序会没有间断地连续打印出来5 10 15,形成51015这样的输出内容。以上分析有误,真诚的说声对不起。正确答案如下:运行结果是1015 第一次进入循环时是i=5,执行循环体后先进行i++,...

c语言,以下程序输出结果,详细说明
才有了这个运算符, 也就是说每个编译器的结果可能不同, 32位编译器是4, 那64位编译器就是8了.如果按照最通常的结果, 输出结果是:4, 4 因为s = sizeof(A), t = sizeof(B), 是把A,B所占的空间的字节数返回, 然后保存到了相应变量中, 再输出.那就是4....

C语言:分析下面程序的运行结果
1、输出为:1 if条件语句中,当()中的值为零时,条件为假,非零时条件为真;由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句;最终输出为1 2、输出为:7 运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break,或者整个switch语句结束 所以最终b=1+1+2+3=7 3、...

C语言分析下面程序的运行结果
1、输出为:1 if条件语句中,当()中的值为零时,条件为假,非零时条件为真;由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句;最终输出为1 2、输出为:7 运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break,或者整个switch语句结束 所以最终b=1+1+2+3=7 3、...

c语言,以下程序运行后的输出结果是
c=(a+=a-=5)是一个表达式,(a=b,b+3)是另一个表达式。a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,将值赋给c,c=-10,此时,a=-5 a=b,将b的值赋给a,a=0,执行b+3=0+3=3,这个3不对任何变量赋值。因此最终结果a=0,b=0,c=-10 输出a、b、c的值,输出0,0,-10...

相似回答
大家正在搜