看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)