※ 引述《tdchen151719 (travis)》之銘言:
: 大家好,今天在螞蟻的第6張遇到了問題,題目是下面的程式碼結果會是如何?
: 問題:為什麼結果是倒著印?
: #include<stdio.h>
: #include<stdlib.h>
: #define SIZE 10
: int w( const int b[], int p , int k );
^ 這邊是void
: int main( void ){
: int x ;
: int a[SIZE]={1,2,3,4,5,6,7,8,9,10};
: x = w( a , 0 , SIZE );
^ void 沒辦法用變數去接值
: printf( "\n" );
: system ( "pause" );
: return 0;
: }
最簡單的方法是在程式碼裡面加上一些印出字串的程式碼, 有人喜歡用
printf("ggyy"); 不過我不建議那樣做...以下是我的做法
: int w( const int b[] , int p , int k ){
^ 這邊是 void
printf("call : (p, k) = (%d,%d)\n", p, k );
: if( p < k ){
puts("if condition is true");
: w( b , p+1 , k ) ;
: printf( "%d " , b[p] );
: }
else
puts("if condition is false");
: }
主要概念就是你想追蹤程式碼「跑到哪邊」、「當前的值為何」, 的時
候都可以用, 如果怕程式太過肥大也可以用巨集常數來讓編譯器看到不
同的程式碼 :
#define _DEBUG_
#ifdef _DEBUG_
// 要印的程式碼
#endif
另外就是善用IDE逐步執行功能, 以VC++ 2010 express舉例, 按F11 就
可以一行行程式跑, 程式碼旁邊會有黃色的箭頭標示目前程式跑到哪邊
, 詳細步驟在之前回文的推文中 james732 大大有提出
以上
另外想請問一下各位大大在測程式的 coverage 時都是用什麼工具呢 ?
--
╭───╮ ╭╮ ╭╮ ☆
非常非常善良的你 │╭──╯ ☆ ││ ││ ☆
非常愛我的你 │╰──╮╭──╮│╰──╯│╭──╮╭──╮╭──╮
────────── ╰──╮││╭╮│╰─╮╭─╯│ ‧ ││╭╮││╭╮│
曾一瞬間展露笑容的你 ╭──╯││╰╯│ ││ │ ─╯│╰╯│││││
曾接受我心意的你 ╰───╯╰──╯ ☆ ╰╯ ╰──╯╰──╯╰╯╰╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.115
※ 編輯: loveme00835 來自: 140.121.197.115 (07/19 13:15)
※ 編輯: loveme00835 來自: 140.121.197.115 (07/19 13:16)
※ 編輯: loveme00835 來自: 140.121.197.115 (07/19 13:18)
※ 編輯: loveme00835 來自: 140.121.197.115 (07/19 13:19)