开元周游
德国频道
查看: 1609|回复: 5
打印 上一主题 下一主题

求教!请高手看看程序!

[复制链接]
1#
匿名  发表于 24.3.2004 16:54:03
即时机票
输出结果是多少?<br>#include&lt;stdio.h&gt;<br>int feld[]={1,2,3,7,5,6,4,8,9};<br>unsigned anz(int a,int f[],unsigned l)<br>{  if(l) return a&lt;f[0]?0:1+anz(a,&f[1],l-1);<br>   return 0;<br>}<br>int main()<br>{  printf(&quot;%u \n&quot;,anz(0,feld,9));<br>  printf(&quot;%u \n&quot;,anz(6,feld,9));<br>  printf(&quot;%u \n&quot;,anz(8,feld,9));<br>}
2#
匿名  发表于 26.3.2004 10:21:55
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->if(l) return a&lt;f[0]?0:1+anz(a,&f[1],l-1);<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--><br>这里的&f[1]有问题,虽然可以通过编译,但是无法执行的,因为函数第二个参数要求是数组指针,你现在传进去一个int的指针,所以是错的
3#
匿名  发表于 26.3.2004 11:03:03
可以编译,也可以执行,自己找个编译器吧。<br>因为数组的首地址其实就是数组第一个元素的地址,所以这里不存在传递错误。
4#
发表于 26.3.2004 12:10:29 | 只看该作者
每次弟龟,首地址加一,输出结果是计算递归次数,关键注意feld <br>的顺序是7,6,5,4 ,所以6,5,4的输出都是3。
5#
发表于 26.3.2004 14:19:29 | 只看该作者
呵呵,这个恐怕就是Fancy的倾向问题吧,无非就是降低了程序的可读性!<br><br>完全可以写的简单明了一些,多加几个printf输出。这个不需要高手!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点信息

站点统计| 举报| Archiver| 手机版| 小黑屋

Powered by Discuz! X3.2 © 2001-2014 Comsenz Inc.

GMT+1, 15.11.2024 20:39

关于我们|Apps

() 开元网

快速回复 返回顶部 返回列表