Re: [問題] 為什麼結果會是倒著印呢?
但if在第十一次不就不成立了,怎麼還會執行在誇號裡面的print呢?
※ 引述《godman362 (卯)》之銘言:
: : #include<stdio.h>
: : #include<stdlib.h>
: : #define SIZE 10
: : int w( const int b[], int p , int k );
: : int main( void ){
: : int x ;
: : int a[SIZE]={1,2,3,4,5,6,7,8,9,10};
: : x = w( a , 0 , SIZE );
: : printf( "\n" );
: : system ( "pause" );
: : return 0;
: : }
: : int w( const int b[] , int p , int k ){
: : if( p < k ){
: : w( b , p+1 , k ) ;
: : printf( "%d " , b[p] );
: : }
: : }
: 第一次進去:w(a, 0, 10)
: k = 10, p = 0, p < k
: 做 w(b, 1, 10)
: 第二次進去:w(b, 1, 10)
: k = 10, p = 1, p < k
: 做 w(b, 2, 10)
: .....
: .....
: .....
: 第十次進去:w(b, 9, 10)
: k = 10, p = 9, p < k
: 做 w(b, 10, 10)
: 第十一次進去:w(b, 10, 10)
: k = 10, p = 10, p == k(表p沒小於k)
: 做printf("%d", b[p]),接著return回上一個function
: 接著上一個function下一行也是接printf("%d", b[p]);
: 接著看p是多少,就印多少了
: 所以很明顯從10開始一路往回印,就是你所看到的倒著印了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.160.21
→
07/19 10:55, , 1F
07/19 10:55, 1F
→
07/19 11:01, , 2F
07/19 11:01, 2F
→
07/19 11:02, , 3F
07/19 11:02, 3F
→
07/19 11:04, , 4F
07/19 11:04, 4F
→
07/19 11:04, , 5F
07/19 11:04, 5F
→
07/19 11:14, , 6F
07/19 11:14, 6F
推
07/19 12:09, , 7F
07/19 12:09, 7F
→
07/19 12:12, , 8F
07/19 12:12, 8F
推
07/19 13:09, , 9F
07/19 13:09, 9F
討論串 (同標題文章)