欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。

程序员文章站 2022-04-12 20:24:55
函数功能: 使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法...
函数功能:

使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。

 

思考:

三个参数中两个操作数不用处理,直接传入即可,而对于第一个操作数就需要处理了,以保证传入的参数是“'-a','-s','-m','-d'”,以便于处理计算,第一步将操作符号转化为上述赋好,然后将参数以及操作数传入函数。

程序如下:

/*
**1.使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,
**第一个参数“-a”选项执行加法,“-s”选项执行减法,
**“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
*/
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int my_math(char *p, int num1, int num2)
{
    assert(p);
    if (p == "-a")
        return num1 + num2;
    else if (p == "-s")
        return num1 - num2;
    else if (p == "-m")
        return num1*num2;
    else if (p == "-d")
        return num1 / num2;
    else return 0;
}
int main()
{
    char a,b;
    char *p=&b;
    int num1 = 0;
    int num2 = 0;
    printf("请输入要计算的算式:");
    scanf("%d%c%d",&num1,&a,&num2);  //录入算式,num1,num2为操作数,a保存的是操作符
    while (1)      //分别对参数指针p赋值,‘+’,‘-’,‘*’,‘/’,分别对应“-a,-s,-m,-d”,如果别的符号队p赋‘\0’
    {
        if (a == '+')
        {
            p= "-a" ;
            break;
        }
        else if (a == '-')
        {
            p = "-s";
            break;
        }
        else if (a == '*')
        {
            p = "-m";
            break;
        }
        else if (a == '/')
        {
            p = "-d";
            break;
        }
        else *p = '\0';
    }
    int result = my_math(p, num1, num2);    //函数调用,得到结果。
    printf("%d%c%d=%d\n",num1,a,num2,result);  //分别输出
    system("pause");
    return 0;
}

 

经过验证,结果正确,注意:录入算数式的时候不要录入等号,如要计算5加3,录入“5+3”即可!