/*任意位數整數減法,雙向鍊錶實現,無法處理負數,如果減數小於被減數,則顯示結果的絕對值*/
#include#includetypedef unsigned char byte;
typedef struct dgt //每一位數字乙個節點
digit,*p_digit;
p_digit createdigit(int *); //產生鍊錶
p_digit subtraction(p_digit, p_digit); //相減
inline int isdigit(const char); //判斷輸入字元是否是數字
p_digit enddigit(const p_digit); //找到最後一位
void disp(const p_digit); //顯示
void addzero(p_digit, p_digit);//被減數高位補0
void borrowdigit(p_digit);//借位
void destroy(p_digit); //銷毀鍊錶
int isgt(p_digit, p_digit);//判斷被減數是否大於減數,大於返回1,小於等於返回0
int main(int argc, char *argv)
p_digit createdigit(int *bit)
head->val = *bit;
return head;
}void destroy(p_digit head)
}void disp(const p_digit head)
putchar('\n');
}inline int isdigit(const char ch)
int isgt(p_digit min, p_digit sub)//判斷被減數是否大於減數,大於返回1,小於等於返回0
return 0; }}
p_digit enddigit(const p_digit head)//找到最後一位
return cur;
}void addzero(p_digit min_head, p_digit sub_head)//被減數高位補0 }
void borrowdigit(p_digit pd)//借位
else
--(pd->prev->val);
}p_digit subtraction(p_digit minuend, p_digit subtractor)
p_digit min_cur = enddigit(minuend);//從低位開始減
p_digit sub_cur = enddigit(subtractor);
addzero(minuend, subtractor);//位數不同則被減數高位補零
while(sub_cur->prev != null)
else
if(sub_cur->val < min_cur->val)
else
min_cur = min_cur->prev;
sub_cur = sub_cur->prev;
} return result_head;
}
C 面試題目
1 ispostback正確的是 首次載入頁面的ispostback的值為false 重新整理頁面後的ispostback的值為true 第三個選項忘了 2 頁面傳值的幾種方式 request.querystring session server.transfer 3 什麼是瀏覽器的 無狀態 如何解...
面試題目總結
1.char p和char p的區別。1 char getstring void void main 2 char getstring void void main 為什麼 1 輸出的是亂碼,2 能夠輸出 hello world?hello world 作為靜態字串實際上儲存在文字常量區 參見 棧和...
c 面試題目
摘要 12個c語言面試題,涉及指標 程序 運算 結構體 函式 記憶體,看看你能做出幾個!1.gets 函式 問 請找出下面 裡的問題 include int main void 答 上面 裡的問題在於函式 gets 的使用,這個函式從 stdin 接收乙個字串而不檢查它所複製的快取的容積,這可能會導...