用C语言编写一个简单的加减乘除计算器,要求如图

保留两位小数,直接输出答案,运行结果上不要保留过程

#include <stdlib.h>
#include <string.h>
int Calculate(char* input, float *ret)
{
int returnRet = 0;
float num1, num2, symbol;
int len = strlen(input);
char* num1Str = (char*)malloc(sizeof(char) * len);
char* num2Str = (char*)malloc(sizeof(char) * len);
memset(num1Str, 0, len);
memset(num2Str, 0, len);
int getSymbol = 0;
for (int i = 0, j = 0; i < len; i++)
{
if (input[i] == '+' || input[i] == '-' || input[i] == '*' || input[i] == '/')
{
symbol = input[i];
getSymbol = 1;
continue;
}
if (getSymbol == 0)
num1Str[i] = input[i];
else
num2Str[j++] = input[i];
}
num1 = atof(num1Str);
num2 = atof(num2Str);
if(symbol == '+')
*ret = num1 + num2;
else if(symbol == '-')
*ret = num1 - num2;
else if(symbol == '*')
*ret = num1 * num2;
if(symbol == '/')
{
if(num2 != 0)
*ret = num1 / num2;
else
returnRet = 1;//data error
}
free(num2Str);
free(num1Str);
return returnRet;
}

int main(void)
{
float ret;
char input[100];
memset(input, 0, sizeof(input));
scanf("%s",input);
if(Calculate(input,&ret) == 0)
printf("%.2f",ret);
else
printf("data erro");
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-28

#include<stdio.h>
void main() { float a,b,c; char d,e;
  scanf("%f%c%f",&a,&d,&b); e=1;
  switch ( d ) {
    case '+': c=a+b; break;
    case '-': c=a-b; break;
    case '*': c=a*b; break;
    case '/': if ( b==0 ) e=0; else c=a/b; break;
    default: e=0; break;
  }
  if ( e ) printf("%.2f\n",c); else printf("data erro\n");
}

第2个回答  2019-07-07
#include<stdio.h>
main()
{
double a,b,w,x,y,z;
char ch;
while(scanf("%lf %c %lf",&a,&ch,&b)!=1)
{
if(ch=='*')
{w=a*b;printf("%lf*%lf=%.2lf\n",a,b,w);}
if(ch=='/')
{
if(b==0)printf("输入有误\n");
else {x=a/b;printf("%lf/%lf=%.2lf\n",a,b,x);}
}
if(ch=='+')
{y=a+b;printf("%lf+%lf=%.2lf\n",a,b,y);}
if(ch=='-')
{z=a-b;printf("%lf-%lf=%.2lf\n",a,b,z);}
}
}

用C语言编写一个简单的加减乘除计算器,要求如图
include <stdlib.h>#include <string.h>int Calculate(char* input, float *ret){int returnRet = 0;float num1, num2, symbol;int len = strlen(input);char* num1Str = (char*)malloc(sizeof(char) * len);char* num2Str = (char*)malloc(sizeof(char) * len);memset(num1Str, 0...

用c语言设计一个简单的加减乘除计算器
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。2、输入预处理命令和主函数:#include \/*函数头:输入输出头文件*\/,void main()\/*空类型:主函数*\/。3、定义变量:int a,b,d; \/*定义变量的数据类型为整型*\/,char c;\/*定义变量的数据类型为字符型*\/。4、输入四则运算式:pri...

怎么写C语言简单的加减乘除
1、首先打开Code Blocks软件,新建一个C语言文件,如下图所示 2、接下来在C语言文件中编写加减乘除运算代码,如下图所示 3、然后点击构建菜单下面的编译当前文件选项,如下图所示 4、最后运行程序就可以得到加减乘除运算的结果了,如下图所示 工具\/材料 Code Blocks ...

怎样用c语言编一个简单的计算器?最简单的
while(c!='='||GetTop(OPTR)!='='){ cc=0;flag=0;ii=10; if(c=='-'&&(prec=='='||prec=='(')){minus=-1;prec=c;scanf("%c",&c);} \/\/若某“-”前面是“=”(第一个符号就是“-”)或“(”,则此为负号,不是减号 else if(!InOP(c)){ while(!InOP(c)){ if(c>=48&&c<=...

怎么用C语言编写一个简单计算器程序。
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。2、然后定义一个变量【result】,如下图所示。3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。4、接下来就可以调用输出,如下图所示。5、最后点击运行,如下图所示,就可以运行测试。

用c语言编一个简单的能计算加减乘除的小计算器,要是能把思路附上最好...
while(1){ op=ch;\/\/符号 ch=getch();while(ch<'0' || ch>'9')\/\/输入的不是数字,重新输入 ch=getch();for(i=0;i<count;i++)\/\/回到行首 putchar('\\b');for(i=0;i<count;i++)\/\/用空格覆盖 putchar(' ');for(i=0;i<count;i++)\/\/回到行首 putchar('\\b');putchar(...

请问怎么用c语言写一个可以实现加减乘除四则运算的计算器!
}算法流程:1,如果读入数字就把它存入数组中,2,如果读入加,减号就存如另一个数组用,如果读入乘 除号,就再读入一个数字,从存数字的数组拿出两个数字进行乘 除运算。把结果存入数组中,这么重复直到读入回车键的符号。3,读到回车符号后,就从存符号的数组中拿出一个符号,再从存数字的数组中...

用C语言编一个简单的运算器,要求能够加减乘除!简单易懂!请各位兄弟姐妹...
主要用数组,循环与函数调用实现.完全是入门级.支持四则运算和指数运算(用h符)。数据类型为float型。算术式最大长度可以通过修改程序中的数组长度和“I”值更该,没有具体规定,使用时要注意运算结果的溢出问题。对错误的算术式有一定的检查功能。程序代码如下:include<math.h> float sss(float d[]...

求用C语言编写一简单计算器程序,要求:实现简单地加减乘除就行了
return jisuan(fun(ss,i),fun(ss+i+1,n-i-1),ss[i]);}}if(flag==0)\/\/如果算数中没有+-{for(i=0;i<n;i++)if((ss[i]=='*')||(ss[i]=='\/')){return jisuan(fun(ss,i),fun(ss+i+1,n-i-1),ss[i]);}}}void main(void){char s[50];int n;printf("输入...

c语言实现简单的加减乘除
1、打开C-Free5.0新建一个空白页面,然后将C语言的基础格式写完,注意格式缩进。如下图所示。2、然后输入“ int a=10; float b=5,c; ”注意: float 是浮点型,int 是整型。这个是用来定义C语言中的数值的类型,还有如果一个语句结束那就要打上“;”,这个很重要,不要忘记了。上面的语句...

相似回答