C編程輔導(dǎo):CS101 Binary Arithmetic
原文鏈接:tecdat.cn/?p=29620
Requirement
In this Assignment, you should write a program that allows the user to perform simple arithmetic in binary. Upon starting, the program should tell the user that it is a binary math program, along with brief instructions on how to use the program.
The program should then enter a loop, where it gives a prompt, such as “input>”. Upon receiving input from the user, the program should process it, report the output result (or error), and loop back to the prompt. This should continue until the user gives the keyphrase to exit the program (keyphrase is your choice, good choices are “quit”, “end”, “exit”, etc.). For example:
Input> 101+1100 10001 Input> 111001-1010 101111 復(fù)制代碼
Analysis
Binary arithmetic, 也就是二進(jìn)制算法,是程序設(shè)計(jì)的基礎(chǔ)。本題需要實(shí)現(xiàn)一個(gè)可交互的程序,根據(jù)用戶輸入,實(shí)現(xiàn)二進(jìn)制算法,如二進(jìn)制加法、二進(jìn)制減法等。
本題難度不大,注意輸入的數(shù)據(jù)類型是char,需要拆分后轉(zhuǎn)換為int,以及keyphrase關(guān)鍵響應(yīng)符號(hào)的處理邏輯即可。
Tips
下面是處理用戶交互部分的實(shí)現(xiàn)
int main(int argc, char *argv[]) { ? char input[100]; ? char *keyphrase = "quit"; ? char *add = "+"; ? char *sub = "-"; ? char *mul = "*"; ? char *div = "/"; ? while (1) { ? ? printf("input> "); ? ? scanf("%s", input); ? ? if (strncmp(input, keyphrase, strlen(keyphrase)) == 0) { ? ? ? return 0; ? ? } ? ? if (strstr(input, add) != NULL) { ? ? ? binary_add(input); ? ? } ? ? if (strstr(input, sub) != NULL) { ? ? ? binary_sub(input); ? ? } ? ? if (strstr(input, mul) != NULL) { ? ? ? binary_mul(input); ? ? } ? ? if (strstr(input, div) != NULL) { ? ? ? binary_div(input); ? ? } ? } ? return 0; }