计算器(C语言)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 介绍
  • 关键代码
  • 运行代码(3种)


介绍

  • 标准计数器:执行加减乘除等等
  • 科学计算器:执行分数、统计学、指数函数、对数、三角函数运算等等
  • 程序员计算器:用于二进制,八进制,十进制,十六进制等相互转换功能

二、关键代码

1、加、减、乘、除的函数调用。

void Add(int x, int y)
{
    printf("sum=%d\n", x + y);
}

void Sub(int x, int y)
{
    printf("sum=%d\n", x - y);
}

void Mlu(int x, int y)
{
    printf("sum=%d\n", x * y);
}

void Div(int x, int y)
{
    printf("sum=%d\n", x / y);
}

2、

1、运用do...while进行计算器是否运行。再用switch...case.default选择加还是减或者乘、除。

    do
    {
        menu();  
        printf("请选择:>");
        scanf("%d", &input);
        switch (input)
        {
        case 0:
            printf("退出计算器:\n");
            break;
        case 1:
            printf("加法:");
            scanf("%d %d", &x, &y);
            Add(x, y);
            break;
        case 2:
            printf("减法:");
            scanf("%d %d", &x, &y);
            Sub(x, y);
            break;
        case 3:
            printf("乘法:");
            scanf("%d %d", &x, &y);
            Mlu(x, y);
            break;
        case 4:
            printf("除法:");
            scanf("%d %d", &x, &y);
            Div(x, y);
            break;
        default:
            printf("请重新输入:\n");
            break;
        }
    } while (input);

2、Add、Sub、Mlu和Div中有相同的代码,本着优秀代码利用函数指针数组可进行优化、简单、明了,再运用if...else if...else进行判断是否退出、或者进行计算。

        printf("请选择:>");
        scanf("%d", &input);
        int(*pfArr[5])(int, int) = { Add,Sub,Mlu,Div };

        if (input > 0 && input < 5)
        {
            printf("请输入二个数:");
            scanf("%d %d", &x, &y);
            pfArr[input](x, y);
        }
        else if (input == 0)
        {
            printf("退出计算器:\n");
        }
        else
            printf("请重新输入:");

3、运用回调函数进行优化。根据input进行选择计算器中加、减、乘、除,然后传给函数指针pf

,再输入二个要计算的数,再回归Add、Sub、Mlu、Div函数里进行运算。

     void Calc(int(* pf)(int, int))
{
    int x = 0, y = 0;
    printf("请输入二个数:");
    scanf("%d %d", &x, &y);
    pf(x, y);
}   

switch (input)
        {
        case 0:
            printf("退出计算器:\n");
            break;
        case 1:
            Calc(Add);
            break;
        case 2:
            Calc(Sub);
            break;
        case 3:
            Calc(Mlu);
            break;
        case 4:
            Calc(Div);
            break;
        default:
            printf("请重新输入:\n");
            break;
        }


运行代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

void Add(int x, int y)
{
	printf("sum=%d\n", x + y);
}

void Sub(int x, int y)
{
	printf("sum=%d\n", x - y);
}

void Mlu(int x, int y)
{
	printf("sum=%d\n", x * y);
}

void Div(int x, int y)
{
	printf("sum=%d\n", x / y);
}

void menu()
{
	printf("*********************\n");
	printf("**** 1.Add 2.Sub ****\n");
	printf("**** 3.Mlu 4.Div ****\n");
	printf("****  play.jsq   ****\n");
	printf("*********************\n");                      
}


//方法一:
int main()
{
	int x = 0, y = 0;
	int input = 0;
	do
	{
		menu();  
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 0:
			printf("退出计算器:\n");
			break;
		case 1:
			printf("加法:");
			scanf("%d %d", &x, &y);
			Add(x, y);
			break;
		case 2:
			printf("减法:");
			scanf("%d %d", &x, &y);
			Sub(x, y);
			break;
		case 3:
			printf("乘法:");
			scanf("%d %d", &x, &y);
			Mlu(x, y);
			break;
		case 4:
			printf("除法:");
			scanf("%d %d", &x, &y);
			Div(x, y);
			break;
		default:
			printf("请重新输入:\n");
			break;
		}
	} while (input);
	return 0;
}


方法二
int main()
{
	int x = 0,y = 0;
	int input = 0;
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		int(*pfArr[5])(int, int) = { Add,Sub,Mlu,Div };

		if (input > 0 && input < 5)
		{
			printf("请输入二个数:");
			scanf("%d %d", &x, &y);
			pfArr[input](x, y);
		}
		else if (input == 0)
		{
			printf("退出计算器:\n");
		}
		else
			printf("请重新输入:");
	} while (input);
	return 0;
}


方法三
void Calc(int(* pf)(int, int))
{
	int x = 0, y = 0;
	printf("请输入二个数:");
	scanf("%d %d", &x, &y);
	pf(x, y);
}

int main()
{
	int input = 0;
	do
	{
		menu();  
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 0:
			printf("退出计算器:\n");
			break;
		case 1:
			Calc(Add);
			break;
		case 2:
			Calc(Sub);
			break;
		case 3:
			Calc(Mlu);
			break;
		case 4:
			Calc(Div);
			break;
		default:
			printf("请重新输入:\n");
			break;
		}
	} while (input);
	return 0;
}

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: pta简单计算器c语言是一道程序设计题目,要求使用c语言设计一个简单的计算器程序。 计算器程序需要实现基本的四则运算:加、减、乘、除。用户可输入两个数字和运算符,程序会自动输出结果。 在实现程序时,需要使用系统提供的数学函数库,例如sqrt()函数计算平方根、pow()函数计算次方。 此外,还需要考虑输入的数字是否合法以及分母是否为0等异常情况。 在完成程序后,需要在每个函数中添加注释,使其他人可以清晰地理解代码的逻辑和实现。 总的来说,pta简单计算器c语言是一道适合初学者练习基本语法和算法思维的编程题目。通过编写程序,可以提高编程能力和解决问题的能力。 ### 回答2: pta简单计算器c语言是一道关于基本计算器的题目。我们需要通过程序实现简单的加减乘除四则运算。这道题目让我们深入了解了C语言的基本语法和运算符的使用。 首先,我们需要输入两个数和运算符。输入函数可以用scanf()实现,将输入的数和运算符存放在变量中。接下来,通过if语句来判断输入的运算符,根据不同的情况输出不同的结果。 加法运算可以表示为a+b,减法运算可以表示为a-b,乘法运算可以表示为a*b,除法运算可以表示为a/b。在c语言中,在进行除法运算时,需要注意除数是否为0的情况。如果是0,需要增加判断条件,并输出“Divided by zero!”的提示信息。 此外,还需要注意数据类型的匹配。在进行浮点数运算时,需要将结果存储在浮点型变量中。在输出运算结果时,需要根据结果的类型选择不同的输出格式符。如果结果是整数,则使用%d,如果结果是浮点数,则使用%f。 在完成计算后,需要使用return 0来结束程序的执行。整个程序设计比较简单,但是需要多次运用c语言的知识点。编写时需要熟练掌握c语言的基本语法和运算符的使用,才能达到效果。 总的来说,pta简单计算器c语言是一道很好的练习基本语言能力和编程技巧的题目。通过练习这道题目,我们可以更加熟悉c语言的知识点,同时提高编程速度和准确度。 ### 回答3: PTA简单计算器C语言是一种简单的计算器程序,它可以实现基本的加减乘除四则运算。这个程序的主要功能是根据用户输入的两个数和运算符,计算出结果并输出。 这个程序需要用到一些基本的C语言知识,包括变量的定义和使用、运算符的使用、条件语句和循环语句等。首先需要定义变量来存储用户输入的数字和运算符。然后,需要使用条件语句来判断用户输入的运算符,并根据不同的运算符执行相应的计算。 对于加减乘除四种运算符,需要使用不同的运算符号,并在程序中定义相应的变量来存储计算结果。对于加法运算,可以使用加号进行相加操作;对于减法运算,可以使用减号进行相减操作;对于乘法运算,可以使用乘号进行相乘操作;对于除法运算,可以使用除号进行相除操作。 在程序中还需要使用循环语句来实现多次计算。由于这个程序是一个简单的计算器,所以它需要能够重复执行计算操作,并能够一直运行下去,直到用户选择退出。 总之,PTA简单计算器C语言是一个非常实用的程序,它可以帮助用户快速进行基本的数学计算,具有非常广泛的应用价值。对于想要学习C语言编程的人来说,这个程序也是一个非常好的练习工具,可以帮助他们提高编程能力和熟练度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值