用C语言编程实现一个简单的四则运算计算器

Python014

用C语言编程实现一个简单的四则运算计算器,第1张

#include <stdio.h>

//函数,读数操作数

int getNextNum()

{

int ret

scanf("%d",&ret)

return ret

}

//函数,读运算符

char getOpt()

{

return getchar()

}

//函数,计算

int caculate(int op1 , int op2 ,char opt)

{

if(opt=='+')return op1+op2

if(opt=='-')return op1-op2

if(opt=='*')return op1*op2

if(opt=='/')return op1/op2

return 0

}

int main()

{

int op1,op2

char opt

//计算结果放在第一个操作数

op1 = getNextNum()

while(1)

{

opt = getOpt()

if ( opt == '=' ) break

op2 = getNextNum()

op1 = caculate(op1,op2,opt)

}

printf("%d\n",op1)

}

return 0

}

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

功能为首先有一个界面问"请输入你想进行运算的对象个数”

这个数在一至5之间

然后出来界面让输入算术

然后输入结果

然后有计算机判断对错

解析:

哈哈,刚好,我也在学C语言,碰巧,这几天也正在思考编写计算器的问题.网上应该能找到经典的C程序计算器,这个是我独立写出来的.

我只学到数组这里.所以没用到堆栈,指针之类的.主要用数组,循环与函数调用实现.完全是入门级.

支持四则运算和指数运算(用h符)。

数据类型为float型。

算术式最大长度可以通过修改程序中的数组长度和“I”值更该,没有具体规定,使用时要注意运算结果的溢出问题。

对错误的算术式有一定的检查功能。

程序代码如下:

#include<math.h>

float sss(float d[],char e[],int I)

{int i,n

for(i=0i<=In=++i)

{if(e[i]==0)

{printf("The answer is:-->: %f\n",d[i])i=I}

else

{if(e[i]-e[i+1]>-5)

{switch(e[i])

{case 80: d[i+1]=d[i]+d[i+1]break

case 81: d[i+1]=d[i]-d[i+1]break

case 90: d[i+1]=d[i]*d[i+1]break

case 91: d[i+1]=d[i]/d[i+1]break

case 100: d[i+1]=pow(d[i],d[i+1])break

default :printf("Sorry! Some Error unknow...")break}

for(n=ii<=Ii++)

{d[i]=d[i+1],e[i]=e[i+1]

if(e[i]==0) i=I}

if(n==0) i=n-1

else i=n-2}}}}

main()

{float d[32]

char e[32]

int i,I=31,n

printf("\n\n")

for(i=0i<=Ii++)

{scanf("%f%c",&d[i],&e[i])

switch(e[i])

{case '+': e[i]=80break

case '-': e[i]=81break

case '*': e[i]=90break

case '/': e[i]=91break

case 'h': e[i]=100break

case '=': e[i]=0,i=Ibreak

default: printf("Oper %d is Error! --->- %c -ChangeTo:one of + - * / h =\n",i+1,e[i])}}

printf("\n")

sss(d,e,I)}

直接从我的.c文件里复制出来的.

使用时输入格式例如:123*456-789/369+852h2-741= 然后回车.

852h2表示852的2次方.记得以等号结束.不支持括号(正在努力).

在这支持的32次运算(包括等号).