面試題目任意位數整數減法

2021-06-10 23:48:32 字數 1698 閱讀 1430

/*任意位數整數減法,雙向鍊錶實現,無法處理負數,如果減數小於被減數,則顯示結果的絕對值*/

#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 接收乙個字串而不檢查它所複製的快取的容積,這可能會導...