C语言写的一个简单的计算器

C语言写的一个简单的计算器

下面是一个简单的C语言计算器代码,该代码具有加法、减法、乘法

和除法功能。要求用户输入两个数字和一个运算符,然后计算并显示结果。

```c

#include

int mai

double num1, num2, result;

char operator;

printf("请输入第一个数字: ");

scanf("%lf", &num1);

printf("请输入运算符(+、-、*、/): ");

scanf(" %c", &operator);

printf("请输入第二个数字: ");

scanf("%lf", &num2);

switch(operator)

case '+':

result = num1 + num2;

printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);

break;

case '-':

result = num1 - num2;

printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result); break;

case '*':

result = num1 * num2;

printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result); break;

case '/':

if(num2 == 0)

printf("除数不能为0\n");

} else

result = num1 / num2;

printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result); }

break;

default:

printf("无效的运算符\n");

break;

}

return 0;

```

这个简单的计算器程序首先要求用户输入第一个数字,然后输入一个运算符(+、-、*、/),最后输入第二个数字。程序会根据运算符执行相应的计算并输出结果。注意,为了处理除法时的除数为0的情况,添加了一个条件判断。

该计算器程序有以下几个特点:

- 使用`double`类型来表示数字,以支持小数计算。

- 通过`switch`语句根据不同的运算符执行不同的计算。

- 通过使用`printf`函数的格式化输出,保留两位小数显示结果。

- 使用`if`语句判断除数是否为0,从而避免除以0的错误。

-对无效的运算符进行了错误处理。

您可以根据自己的需求对该计算器进行扩展,比如添加更多的运算符或增加功能。此代码提供了一个基础框架,可以作为学习和扩展的起点。

速算,简易计算器c语言代码,可实现加减乘除

#include"stdio.h" #include"math.h" #include"stdlib.h" struct optrstyle { int top; char stack[20]; } struct opndstyle { int top; int stack[20]; } void main() { char ch; while(1) { printf("-----------------------------------------\n"); printf("|-----------欢迎来到速算24--------------|\n"); printf("|----------是否开始游戏?????------------|\n"); printf("|--------- 开始游戏请按'Y'-------------|\n"); printf("|--------- 退出游戏请按其他键-------------|\n"); printf("-----------------------------------------\n"); scanf("%c",&ch); if(ch=='Y' or ch=='y') { } else break; } } int EvaluateExpression() { // 算术表达式求值的算符优先算法。设OPTR 和OPND 分别为运算符栈和运算数栈,OP 为运算符集合。 InitStack(OPTR); Push(OPTR,'#'); InitStack(OPND); c = getchar(); while(c!='#' || GetTop(OPTR)!='#') { if(!In(c,OP))

用c语言编写的计算器源代码

作品:科学计算器 作者:欧宗龙 编写环境:vc++6.0 语言:c #include "stdafx.h" #include #include #include #include "resource.h" #include "MainDlg.h" #include #include #define PI 3.141593 BOOL A_Op=FALSE; BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) {

return TRUE; } void TrimNumber(char a[])//判断并删除小数点后无用的零 { for(unsigned i=0;i=i;j--) { if(a[j]=='0') { a[j]='\0'; } else if(a[j]=='.') { a[j]='\0'; } else break; } } } } double Operate(char Operator,double n1,double n2) //判断符号,进行相应的运算{ if(Operator=='0') { } if(Operator=='+') { n2+=n1; } if(Operator=='-') { n2=n1-n2; } if(Operator=='*') { n2*=n1; } if(Operator=='/')

用C语言编写计算器

用c编写的,有各种检错的功能,用栈和优先级实现。头文件是:ss.h typedef union{float a;char b;} eletype; typedef struct{ eletype *base; eletype *top; int stacksize; }stack; stack * createStack(int); int isempty(stack *); int gettopStack(stack *,eletype *); int push(stack *,eletype); int pop(stack *,eletype *data); stack * createStack(int m) { stack *p; p=(stack *)malloc(sizeof(stack)); if(!p)return 0; p->base=(eletype *)malloc(m*sizeof(eletype)); if(!p->base)return 0; p->top=p->base; p->stacksize=m; return p; } int isempty(stack *lp) { if(lp->top > lp->base)return 0; else return 1; } int gettopStack(stack *lp,eletype *data) { while(isempty(lp))return 0; *data = *(lp->top - 1); return 1; }

int push(stack *lp,eletype data) { if(lp->top - lp->base >= lp->stacksize) { lp->base=(eletype *)realloc(lp->base,(lp->stacksize+1)*sizeof(eletype)); if(!lp->base)return 0; lp->stacksize++; } lp->top++; *(lp->top-1)=data; return 1; } int pop(stack *lp,eletype *data) { while(isempty(lp))return 0; *data = *(--lp->top); return 1; } Main函数的编写: #include "ss.h" #define SHU printf("fuck!! biao da shi cuowu!!!"); int n,x,y=0; float t=0; char c; char panduan(char,char); float yunsuan(float,char,float); int jiexi(char a[100]); float zhuan(char c[20]); main() { char a[100]; int m; char d,l; stack *optr; stack *open; eletype data; eletype * data1; char e[20]; float j,k;

C语言简单计算器实现四则运算可带括号

C语言简单计算器实现四则运算可带括号```c #include #include int priority(char op) if (op == '+' , op == '-') return 1; else if (op == '*' , op == '/') return 2; else if (op == '(') return 0; else return -1; void calculate(char op, int *numStack, int *top, char *opStack, int *opTop) int num2 = numStack[(*top)--]; int num1 = numStack[(*top)--]; switch (op) case '+':

numStack[++(*top)] = num1 + num2; break; case '-': numStack[++(*top)] = num1 - num2; break; case '*': numStack[++(*top)] = num1 * num2; break; case '/': numStack[++(*top)] = num1 / num2; break; } int eval(char *expr) int numStack[100]; char opStack[100]; int numTop = -1; int opTop = -1; int num = 0; int sign = 1;

while (*expr != '\0') if (*expr >= '0' && *expr <= '9') num = num * 10 + (*expr - '0'); } else if (*expr == '+' , *expr == '-') numStack[++numTop] = num * sign; num = 0; sign = (*expr == '+') ? 1 : -1; } else if (*expr == '*' , *expr == '/') while (opTop >= 0 && priority(*expr) <= priority(opStack[opTop])) calculate(opStack[opTop--], numStack, &numTop, opStack, &opTop); } opStack[++opTop] = *expr; } else if (*expr == '(') opStack[++opTop] = '('; } else if (*expr == ')') while (opStack[opTop] != '(') calculate(opStack[opTop--], numStack, &numTop, opStack, &opTop);

用c语言编写的加减乘除计算器程序

#include<> double jjcc(double st[],int k){ for(int j=1;j47&&st1[i]<58){

sum1=(st1[i]-48)+sum1*10; i++; if(st1[i]=='.'){ i++; while(st1[i]>47&&st1[i]<58){ k=k*; sum2=(st1[i]-48)*k+sum2; i++; } } st2[c]=sum1+sum2; } else{ st2[++c]=st1[i]; i++; sum1=0; c++; } } printf("%.4f\n",jjcc(st2,c+1)); }

C语言编写的计算器源代码

C语言编写的计算器源代码 ```c #include #include #include #include #define MAX_EXPRESSION_SIZE 100 //栈结构定义 typedef struct int top; double data[MAX_EXPRESSION_SIZE]; } Stack; //初始化栈 void initStack(Stack *s) s->top = -1; //入栈 void push(Stack *s, double value) if (s->top == MAX_EXPRESSION_SIZE - 1) printf("Stack is full. Cannot push element.\n");

} else s->data[++(s->top)] = value; } //出栈 double pop(Stack *s) if (s->top == -1) printf("Stack is empty. Cannot pop element.\n"); return -1; } else return s->data[(s->top)--]; } //获取栈顶元素 double peek(Stack *s) if (s->top == -1) return -1; } else return s->data[s->top]; } //判断运算符的优先级

int getPriority(char operator) switch (operator) case '+': case '-': return 1; case '*': case '/': return 2; case '^': return 3; default: return -1; } //执行四则运算 double performOperation(double operand1, double operand2, char operator) switch (operator) case '+': return operand1 + operand2;

C语言编写一个科学计算器

C语言编写一个科学计算器 科学计算器是一种功能强大的工具,可以进行各种复杂的科学计算。下面是一个使用C语言编写的科学计算器的示例代码,用于演示其基本功能。 ```c #include #include void mainMen printf("------------------------\n"); printf(" 科学计算器 \n"); printf("------------------------\n"); printf("1. 四则运算\n"); printf("2. 求平方根\n"); printf("3. 求立方根\n"); printf("4. 求幂次方\n"); printf("5. 求对数\n"); printf("6. 退出\n"); void arithmeticOperation float num1, num2;

printf("请输入两个操作数:\n"); scanf("%f %f", &num1, &num2); printf("1. 加法结果:%f\n", num1 + num2); printf("2. 减法结果:%f\n", num1 - num2); printf("3. 乘法结果:%f\n", num1 * num2); if (num2 != 0) printf("4. 除法结果:%f\n", num1 / num2); } else printf("操作数2不能为0!\n"); } void squareRoo float num; printf("请输入一个数字:\n"); scanf("%f", &num); printf("平方根:%f\n", sqrt(num)); void cubeRoo float num; printf("请输入一个数字:\n"); scanf("%f", &num);

C语言计算器源代码

C++语言编写;; include include include using namespace std; const double pi = 3.; const double e = ; const int SIZE = 1000; typedef struct node { i++; ge = 0; biao_dian = 1; } iflinei == 'P' {

shu++p = pi; i++; break; } iflinei == 'E' { shu++p = e; i++; break; } ifflag1 { h = h 10 + linei - '0'; flag = 1; i++; ifbiao_dian

ge++; } else break; } ifflag { ifbiao_dian { int r = 1; forint k = 1; k <= ge; k++ r = 10; h /= r; } shu++p = h; + ^乘方 Foff Enter= "<

cout<<"M在前面结果的基础上继续计算,如:上次结果为10,现输入+2"<>start

用c语言编写的加减乘除计算器程序

#include double jjcc(double st[],int k){ for(int j=1;j47&&st1[i]<58){

sum1=(st1[i]-48)+sum1*10; i++; if(st1[i]=='.'){ i++; while(st1[i]>47&&st1[i]<58){ k=k*0.1; sum2=(st1[i]-48)*k+sum2; i++; } } st2[c]=sum1+sum2; } else{ st2[++c]=st1[i]; i++; sum1=0; c++; } } printf("%.4f\n",jjcc(st2,c+1)); } 如有侵权请联系告知删除,感谢你们的配合!

C语言制作简单计算器

C语言制作简单计算器 一、项目介绍 我们要用c语言做一个简单的计算器,进行加、减、乘、除操作。本程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。我们需要检查输入,确保用户没有要求计算机完成不可能的任务。还必须允许用户一次输入一个计算式,例如:32.4+32 或者9*3.2 项目效果图 编写这个程序的步骤如下: ∙获得用户要求计算机执行计算所需的输入。 ∙检查输入,确保输入可以理解。 ∙执行计算。 ∙显示结果。 三、解决方案 1.步骤1

获得用户输入是很简单的,可以使用printf()和scanf()。下面是读取用户输入的程序代码: #includeint main(){ double number1=0.0; //定义第一个操作值 double number2=0.0; //定义第二个操作值 char operation=0; //operation必须是'+''-''*''/'或'%' printf("\nEnter the calculation\n"); scanf("%lf%c%lf",&number1,&operation,&number2); return0; } 2.步骤2 接着,检查输入是否正确。最明显的检查是要执行的操作是否有效。有效的操作有+、-、*、/和%,所以需要检查输入的操作是否是其中的一个。 还需要检查第二个数字,如果操作是/或者%,第二个数字就不能是0。如果右操作数是0,这些操作就是无效的。这些操作都可以用if语句来完成,switch语句则为此提供了一种更好的方式,因此它比一系列if语句更容易理解。 switch(operation) { case'+': printf("=%lf\n",number1+number2); break; case'-': printf("=%lf\n",number1-number2); break; case'*': printf("=%lf\n",number1*number2); break; case'/': if(number2==0) printf("\n\n\aDavision by zero error!\n"); else printf("=%lf\n",number1/number2); break;

c语言简易计算器报告

C语言简易计算器报告 介绍 本文将介绍如何使用C语言编写一个简易的计算器。计算器可以进行基本的四则运算,包括加法、减法、乘法和除法。 设计思路 1.首先,我们需要定义计算器的操作符和操作数。操作符可以是+, -, *, /,操作数是两个整数或浮点数。 2.接下来,我们需要编写一个函数来接收用户输入的操作符和操作数, 并进行相应的计算。我们可以将这个函数命名为calculate。 3.在calculate函数中,我们根据用户输入的操作符,执行相应的计 算操作,并返回计算结果。如果用户输入的操作符不合法,我们将返回一个错误提示。 4.最后,我们在主函数中调用calculate函数,并显示计算结果。 代码实现 下面是实现一个简易计算器的C语言代码: #include float calculate(char operator, float operand1, float operand2) { float result; switch (operator) { case'+': result = operand1 + operand2; break; case'-': result = operand1 - operand2; break; case'*': result = operand1 * operand2; break; case'/': if (operand2 != 0) { result = operand1 / operand2; } else { printf("错误:除数不能为0\n"); return-1; // 返回错误代码 } break;

c语言制作简单的计算器

c语言制作简单的计算器 在计算机编程领域中,C语言是一种广泛使用的编程语言之一。它具有简单易学的特点,并且能够进行复杂的计算和逻辑处理。今天,我们就来学习一下如何使用C语言来制作一个简单的计算器。 首先,我们需要明确我们计算器的功能和界面设计。本次制作的计算器将具有基本的四则运算功能,即加法、减法、乘法和除法。我们将在控制台中实现计算器的操作,并通过简单的用户界面进行交互。 接下来,我们需要创建一个C语言程序的框架。首先,我们需要包含头文件,以便在程序中使用各种函数和变量。我们可以使用 "#include" 来引入头文件,例如: ```c #include ``` 然后,我们需要定义主函数 `main()`。在这个函数中,我们将编写计算器的逻辑代码。让我们开始编写函数吧! 首先,我们需要声明一些变量来存储用户输入的数字和运算符。我们可以使用 `int` 来定义整数变量,并用 `char` 定义字符变量。例如:```c int num1, num2, result; char operator;

``` 接下来,我们需要提示用户输入要进行的运算,并读取用户输入的数字和运算符。我们可以使用 `printf` 和 `scanf` 函数来完成这个任务,例如: ```c printf("请输入第一个数字: "); scanf("%d", &num1); printf("请输入运算符(+, -, *, /): "); scanf(" %c", &operator); printf("请输入第二个数字: "); scanf("%d", &num2); ``` 注意,我们在读取运算符之前添加了空格,这是为了消除输入缓冲区中可能残留的换行符等字符。 接下来,我们需要编写代码来进行实际的计算操作。根据用户输入的运算符,我们可以使用 `switch` 语句来选择不同的操作。例如:```c switch(operator) { case '+':

简易计算器C语言代码

#include #include int main(void) { int choice,t=1; printf("**********************计算器*****************************************\n"); printf(" 1.加法运算2.减法运算\n"); printf(" 3.乘法运算4.除法运算\n"); printf(" 5.平方运算6.开方运算\n"); printf(" 7.解一元二次方程By:_一念成殇、\n"); printf("**********************************************************************\n"); printf("请选择您即将进行的运算方式(输入对应数字):"); while(t==1) { scanf("%d",&choice); if(choice>7) printf("请您输入正确的选项编号!\n"); //加法 if(choice==1) { float addend_1,addend_2,sum; printf("请输入两个加数:\n"); scanf("%f",&addend_1); scanf("%f",&addend_2); sum=addend_1+addend_2; printf("结果为:%.2f",sum); } //减法 if(choice==2) { float reduction,minuend,difference; printf("请输入被减数和减数:\n"); scanf("%f",&reduction); scanf("%f",&minuend ); difference=reduction-minuend ; printf("结果为:%.2f",difference); } //乘法 if(choice==3) { float multiplier_1,multiplier_2,product; printf("请输入两个乘数:\n"); scanf("%f",&multiplier_1); scanf("%f",&multiplier_2); product= multiplier_1 * multiplier_2; printf("结果为:%.2f",product);

c语言简单计算器程序

c语言简单计算器程序 以下是一个简单的C语言计算器程序,它可以执行基本的加法、减法、乘法和除法操作。用户可以输入两个操作数和操作符,然后程序将输出计算结果。 ```c #include // 函数声明 float add(float num1, float num2); float subtract(float num1, float num2); float multiply(float num1, float num2); float divide(float num1, float num2); int main() { char operator; float num1, num2, result; // 获取用户输入 printf("Enter first number: "); scanf("%f", &num1); printf("Enter operator (+, -, *, /): "); scanf(" %c", &operator); // 注意空格,避免读取上一个输入的换行符 printf("Enter second number: "); scanf("%f", &num2); // 执行计算 switch (operator) { case '+': result = add(num1, num2); break; case '-': result = subtract(num1, num2); break; case '*': result = multiply(num1, num2); break; case '/': result = divide(num1, num2); break; default:

C语言程序设计-简单的计算器

- - . "程序设计根底(C)"课程设计报告 简易计算器设计 学生姓名: 学号: 班级: 指导老师: 日期: 309工作室设计 目录 一、设计目标错误!未定义书签。 二、总体设计1 三、详细设计2 四、调试与测试3 五、分析及结论4 六、参考文献5 【附录】5 一、设计目标 设计一个C语言程序〔简单计算器设计〕 具体要求:在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。 主要功能:进展+、-、*、/、三角函数、对数、幂等各项数学运算,能够进展进制间的相互转换与计算。 二、总体设计 1、程序设计组成框图

2、设计思路 简单计算器的设计的程序中主要调用的函数有:数学函数的定义和I/O函数;设计思路和理念在于一切追求简便易操作原理,通过个人的构思和设计以及调试运行设计出这一款简单的计算器。 3、程序设计流程图 三、详细设计 1、功能函数① 函数的功能:两数的+、-、*、/计算、求平均 函数的入口:从main()的if(flag==1)开关构造中进入,即flag的值为1时进入该函数,从而进展该功能函数的计算。 函数调用关系:被主函数调用,由if()开关构造中进入。 函数的出口:函数的出口为printf("是否继续运算?(Y/N) :"),此时输入"Y〞,继续前面的构造。 2、功能函数② 函数的功能: *的y次方的计算、两数的求余、以*为底y的对数 函数的入口:从main()的if(flag==2)开关构造中进入,即flag的值为2时进入该函数,从而进展该功能函数的计算。 函数调用关系:被主函数调用,由if()开关构造中进入。 函数的出口:函数的出口为printf("是否继续运算?(Y/N) :"),此时输入"Y〞,继续前面的构造。 3、功能函数③ 函数的功能: 单个数值sin、cos、tan的计算,以e为底的指数、求绝对值 函数的入口:从main()的if(flag==3)开关构造中进入,即flag的值为3时进入该函数,从而进展该功能函数的计算。 函数调用关系:被主函数调用,由if()开关构造中进入。 函数的出口:函数的出口为printf("是否继续运算?(Y/N) :"),此时输入"Y〞,继续前面的构造 4、功能函数④ 函数的功能: 单个数值的ln值、以10为底的对数、取整、平方、立方计算 函数的入口:从main()的if(flag==4)开关构造中进入,即flag的值为4时进入该函数,从而进展该功能函数的计算。 函数调用关系:被主函数调用,由if()开关构造中进入。 函数的出口:函数的出口为printf("是否继续运算?(Y/N) :"),此时输入"Y〞,继续前面的构造 5、功能函数⑤

用C语言实现多项式简单计算器的设计概要

用C语言实现多项式简单计算器的设计概要 一、引言 多项式是数学中重要的概念之一,在实际问题中经常用到。多项式的运算包括加法、减法、乘法和除法等,因此设计一个多项式简单计算器是很有实用价值的。本文将使用C语言实现多项式简单计算器的设计概要。 二、设计目标 多项式简单计算器的设计目标是实现多项式的基本运算,包括多项式的输入、输出和常见运算。具体目标如下: 1.可以输入多项式,并以合适的格式显示出来; 2.可以进行两个多项式的加法、减法和乘法运算; 3.可以进行一个多项式的常数乘法; 4.可以进行多项式的求导; 5.可以根据给定点的横坐标,计算多项式的函数值; 6.可以清空计算器的当前结果。 三、设计思路 为了实现以上目标,需要设计以下功能模块: 1.输入模块:从键盘获取用户输入,并将输入的多项式存储起来; 2.输出模块:以合适的格式将多项式输出到屏幕上; 3.加法模块:将两个输入的多项式相加,生成一个新的多项式;

4.减法模块:将第二个输入的多项式从第一个输入的多项式中减去,生成一个新的多项式; 5.乘法模块:将两个输入的多项式相乘,生成一个新的多项式; 6.常数乘法模块:将一个输入的多项式与指定常数相乘,生成一个新的多项式; 7.求导模块:对输入的多项式进行求导运算,生成一个新的多项式; 8.函数值计算模块:根据给定点的横坐标,计算多项式在该点的函数值; 9.清空模块:清空当前计算器的结果。 四、设计过程 1.输入模块的设计 输入模块可以通过逐项输入多项式的系数和指数,使用链表来存储多项式。每一个链表节点包括系数(coefficient)和指数(exponent),使用两个变量分别存储。可以引入一个头指针和一个尾指针来指向链表的首和尾部。 2.输出模块的设计 输出模块将使用循环遍历链表,根据每个节点的系数和指数,将多项式以合适的格式输出到屏幕上。 3.加法模块的设计 加法模块将根据两个链表的节点的指数进行比较,如果指数相等,则将系数相加,并将结果存储到一个新的链表中。如果指数不等,则将较小

计算器c语言课程设计报告书

设计分析: 我做的是一个计算器程序,属于B级。题目要求如下: 1、完善计算器程序,改为可对实数操作。 2、完善程序,改为多个操作数基本四则运算,遇到z为止。 3、增加函数,完成四则混合运算,增加相应的主菜单选项 4、添加语句,使四则运算具有测试功能。 5、可扩充其功能。 所给的计算器源程序中已有基本的加、减、乘、除和开方运算,我所要做的就是添加一个可以进行四则混合运算功能的类。 本程序所要用到的头文件有如下几种:process,iostream,conio,stdlib,math和assert. 原程序中已经定义了加、减、乘、除和开方的运算,它用了类oopcalc将这几个基本运算进行封装。类中包含以下几个函数: void calcadd(); void calcsub(); void calcdiv(); void calcmult(); void calcfartocel(); void calcceltofar(); void calcsroot(); void exitprog(); void menu();

void badinput(); 每个函数的参数形式如下: int add(float x,float y); int sub(float x, float y); int div(float x, float y); int mult(float x, float y); int fartocel(float x); int celtofar(float x); int sqroot(float x); 原程序对这几个函数分别做了如下定义: int oopcalc::add(float x, float y) { val = x + y; return val; } int oopcalc::sub(float x,float y) { val = x - y; return val; } int oopcalc::div(float x, float y) {

相关文档
最新文档