您好,登錄后才能下訂單哦!
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)計(jì)算器的代碼怎么寫的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇C語(yǔ)言實(shí)現(xiàn)計(jì)算器的代碼怎么寫文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
C語(yǔ)言計(jì)算器兩種方法
//一般做法 #include<stdio.h> #include<windows.h> //#include<assert.h> void menu() { printf("**************************\n"); printf("****歡迎來(lái)到計(jì)算器頁(yè)面****\n"); printf("**** 1.add 2.mul *****\n"); printf("*****3.sub 4.div1 *****\n"); printf("*****0.exit *****\n"); printf("**************************\n"); } int add(int x, int y) { return x + y; } int mul(int x, int y) { return x * y; } int sub(int x, int y) { return x - y; } int div1(int x, int y) { return x / y; } int main() { int n = 1; menu(); while (n) { printf("請(qǐng)輸入選項(xiàng):\n"); scanf("%d", &n); int x = 0, y = 0; /*printf("請(qǐng)輸入兩個(gè)整數(shù)!\n"); scanf("%d%d", &x, &y);*/ //若將兩個(gè)數(shù)字輸入放在此處會(huì)出現(xiàn)輸入錯(cuò)誤時(shí)不能退出系統(tǒng),而是顯示“輸入兩個(gè)整數(shù)”的提示 switch (n) { case 1: printf("請(qǐng)輸入兩個(gè)整數(shù)!\n"); scanf("%d%d", &x, &y); printf("%d\n", add(x, y)); break; case 2: printf("請(qǐng)輸入兩個(gè)整數(shù)!\n"); scanf("%d%d", &x, &y); printf("%d\n", mul(x, y)); break; case 3: printf("請(qǐng)輸入兩個(gè)整數(shù)!\n"); scanf("%d%d", &x, &y); printf("%d\n", sub(x, y)); break; case 4: printf("請(qǐng)輸入兩個(gè)整數(shù)!\n"); scanf("%d%d", &x, &y); printf("%d\n", div1(x, y)); break; case 0: printf("退出計(jì)算器!\n"); break; default: printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n"); } } }
//使用函數(shù)指針數(shù)組解決計(jì)算器問(wèn)題 #include<stdio.h> #include<windows.h> //#include<assert.h> void menu() { printf("**************************\n"); printf("****歡迎來(lái)到計(jì)算器頁(yè)面****\n"); printf("**** 1.add 2.mul *****\n"); printf("*****3.sub 4.div1 *****\n"); printf("*****0.exit *****\n"); printf("**************************\n"); } int add(int x, int y) { return x + y; } int mul(int x, int y) { return x * y; } int sub(int x, int y) { return x - y; } int div1(int x, int y) { return x / y; } int main() { int n = 1; menu(); while (n) { printf("請(qǐng)輸入選項(xiàng):\n"); scanf("%d", &n); int(*arr[5])() = { 0,add,mul,sub,div1 };//轉(zhuǎn)移表 //定義一個(gè)函數(shù)指針數(shù)組,存放函數(shù)地址 if (n >= 0 && n < 5) { int x = 0, y = 0; printf("請(qǐng)輸入兩個(gè)整數(shù):>\n"); scanf("%d%d", &x, &y); printf("%d\n", (*arr[n])(x,y));//輸出結(jié)果 } else { printf("輸入有誤,請(qǐng)重新輸入!\n"); scanf("%d", &n); } } system("pause"); return 0; }
兩種方法相比,第一種相似代碼較多,比較冗余;第二種代碼簡(jiǎn)潔直觀,程序效率高。
關(guān)于“C語(yǔ)言實(shí)現(xiàn)計(jì)算器的代碼怎么寫”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“C語(yǔ)言實(shí)現(xiàn)計(jì)算器的代碼怎么寫”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。