首页 > 编程笔记

C语言计算器程序编写(源码+解析)

使用C语言编写一个程序,模拟具有加、减、乘、除 4 种功能的简单计算器。

我们先给出完整的代码:
#include <stdio.h>
int main()
{
    char command_begin; /*开始字符*/
    double first_number;  /*第1个数*/
    char character;  /*运算符(+、-、*、/)*/
    double second_number; /*第2个数*/
    double value;  /*计算结果*/
    printf("简单计算器程序\n----------------\n");
    printf("在'>' 提示后输入一个命令字符\n"); /*输出提示信息*/
    printf("是否开始?(Y/N)>");  /*输出提示信息*/
    scanf("%c",&command_begin);  /*输入Y/N; */
    while(command_begin=='Y'||command_begin=='y')   /*当接收Y/y命令时执行计算器程序*/
    {  
        printf("请输入一个简单的算式:");  /*输出提示信息*/
        scanf("%lf%c%lf",&first_number,&character,&second_number);  /*输入一个算式*/
        switch(character)  /*判断switch语句的处理命令*/
        {
            case '+':  /*当输入运算符为“+”时,执行如下语句*/
                value=first_number+second_number; /*进行加法运算*/
                printf("等于%lf\n",value);
                break;  /*转向switch语句的下一条语句*/
            case '-':  /*当输入运算符为“-”时,执行如下语句*/
                value=first_number-second_number; /*进行减法运算*/
                printf("等于%lf\n",value);
                break;  /*转向switch语句的下一条语句*/
            case '*':  /*当输入运算符为“*”时,执行如下语句*/
                value=first_number*second_number; /*进行乘法运算*/
                printf("等于%lf\n",value);
                break;  /*转向switch语句的下一条语句*/
            case '/':  /*当输入运算符为“/”时,执行如下语句*/
                while(second_number==0)  /*若除数为零,重新输入算式,直到除数不为零为止*/
                {
                    printf("除数为零,请输入一个算式:"); /*输出提示信息*/
                    scanf("%lf%c%lf",&first_number,&character,&second_number); /*输入一个算式*/
                }
                value=first_number/second_number; /*进行除法运算*/
                printf("等于%lf\n",value);
                break;  /*转向switch语句的下一条语句*/
            default:
               printf("非法输入!\n");  /*当输入命令为其他字符时,执行如下语句*/
        }  /*结束switch语句*/
        printf("是否继续运算?(Y/N)>");  /*输出提示信息*/
        fflush(stdin);  /*清空缓冲区*/
        scanf("%c",&command_begin);  /*输入命令类型如y/Y*/
    }  /*结束while循环语句*/
    printf("程序退出!\n");  /*退出循环时显示提示信息*/
}
编译、连接、运行程序,根据提示输入 Y 或 y 时,开始计算,从键盘上输入一个简单的算式,如 5/3,按【Enter】键,即可计算出结果。按 Y 或 y,可继续使用计算器运算。

当进行除法运算时,若除数为零,程序则会提醒用户再一次输入算式,直到除数不为零为止。

当输入的运算符为其他字符时,程序就会提醒“非法输入”。是否进行运算,可根据提示按 Y 或 y 即可。若此时输入的符号为除了 Y 和 y 的其他符号,计算器结束运行。

运行结果示例:

简单计算器程序
----------------
在'>' 提示后输入一个命令字符
是否开始?(Y/N)>y
请输入一个简单的算式:5/3
等于1.666667
是否继续运算?(Y/N)>y
请输入一个简单的算式:6*9
等于54.000000
是否继续运算?(Y/N)>n
程序退出!


本范例用选择和循环语句实现了程序功能。该程序首先进行程序的初始化操作,然后进行循环设置,在循环体内完成处理命令、显示运算结果、提示用户输入命令字符以及读命令字符等工作。程序总的控制结构是一个 while 循环,而对于不同的命令处理,则用多分支的 switch 语句来完成,它嵌套在循环语句当中。

优秀文章