溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言實(shí)現(xiàn)計(jì)算器的代碼怎么寫

發(fā)布時(shí)間:2022-01-29 17:29:23 來(lái)源:億速云 閱讀:515 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了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");
        }
    }
}

C語(yǔ)言實(shí)現(xiàn)計(jì)算器的代碼怎么寫

C語(yǔ)言實(shí)現(xiàn)計(jì)算器的代碼怎么寫

//使用函數(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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI