C语言:加减乘除计算器

通过命令参数实现计算器

使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
例如:命令行参数输入:test.exe -a 1 2
执行1+2输出3

#include<stdio.h>  
#include <stdlib.h>  
int main(int argc, char* argv[])
{
	int num1 = atoi(argv[2]);//此处利用atoi函数将指针数组类型转换为整型。  
	int num2 = atoi(argv[3]);
	int ret;
	if (argc != 4)//判断参数个数  
	{
		printf("参数输入错误");
		return 1;
	}
	if (argv[1][0] == '-')//第二个参数(字符串)判断  
	{
		switch (argv[1][1])
		{
		case 'a':
			ret = num1 + num2;
			printf("%d ", ret);
			break;
		case 's':
			ret = num1 - num2;
			printf("%d", ret);
			break;
		case 'm':
			ret = num1*num2;
			printf("%d", ret);
			break;
		case'd':
			ret = num1 / num2;
			printf("%d\n", ret);
		default:
			printf("第二个参数判断错误");
			break;
		}
	}
	return 0;
}

在这里插入图片描述

通过设计简单的UI界面操作计算

#include <stdio.h>
int add(int a, int b)
{
    return a + b;
}
int sub(int a, int b)
{
    return a - b;
}
int mul(int a, int b)
{
    return a*b;
}
int div(int a, int b)
{
    return a / b;
}
int main()
{

    int x, y;
    int input = 1;
    int ret = 0;
    while (input)
    {

        printf( "*************************\n" );
        printf( " 1:add 2:sub \n" );
        printf( " 3:mul 4:div \n" );
        printf( "*************************\n" );
        printf( "请选择:" );
        scanf( "%d", &input);
        switch (input)
        {

            case 1:
                printf( "输入操作数:" );
                scanf( "%d %d", &x, &y);
                ret = add(x, y);
                break;
            case 2:
                printf( "输入操作数:" );
                scanf( "%d %d", &x, &y);
                ret = sub(x, y);
                break;
            case 3:
                printf( "输入操作数:" );
                scanf( "%d %d", &x, &y);
                ret = mul(x, y);
                break;
            case 4:
                printf( "输入操作数:" );
                scanf( "%d %d", &x, &y);
                ret = div(x, y);
                break;
            default:
                printf( "选择错误\n" );
                break;
        }
        printf( "ret = %d\n", ret);
    }
    return 0;
}

在这里插入图片描述

使用函数指针数组存储计算函数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int add(int x, int y)
{
    return x + y;
}
int sub(int x, int y)
{
    return x - y;
}
int mul(int x, int y)
{
    return x*y;
}
int div(int x, int y)
{
    return x / y;
}
int main()
{

    int x, y;
    int input = 1;
    int ret = 0;
    int(*p[4])(int x, int y) = {add, sub, mul, div };//转移表
    while (input)
    {

        printf("**********************************************\n");
        printf("**  1:  add                        2: sub   **\n");
        printf("**  3:  mul                        4: div   **\n");
        printf("**********************************************\n");
        printf("请输入:");
        scanf("%d", &input);
        if (((input<=4) &&( input>=1)))
        {

            printf("请输入操作数:");
            scanf("%d %d", &x, &y);
            ret = (*p[input-1])(x, y);

        }
        else
            printf("输入有误\n");
        printf("ret=%d\n", ret);

    }
    system("pause");
    return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值