求用C语言编写一简单计算器程序,要求:实现简单地加减乘除就行了

供稿:hz-xin.com     日期:2025-01-13
用C语言编写一个简单的加减乘除计算器,要求如图

#include #include 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];elsenum2Str[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;elsereturnRet = 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);elseprintf("data erro");return 0;}

我学c++时写的
#include #include "string" int count(int a,int b,char c) { if(c=='+') return a+b; if(c=='-') return a-b; if(c=='/') return a/b; if(c=='*') return a*b; } void main() { char str[100]; cin>>str; int number[10]={0}; char sign[10]; int i,j=0,k=0,m; int strlong=strlen(str);//#include "string" cout='0'&&str[i]<='9') number[j]=number[j]*10+str[i]-48; else {j++; sign[k]=str[i]; k++;} } j++; //cout<<j<<k; for(i=0;i<j;i++) cout<<number[i]<<endl; for(i=0;i<k;i++) cout<<sign[i]<<endl; for( i=0;i<k;i++) { if(sign[i]=='/'||sign[i]=='*') {number[i]=count(number[i],number[i+1],sign[i]); cout<<number[i]; for(m=i;m<k-i;m++) {sign[m]=sign[m+1];number[m+1]=number[m+2];} k--;i--;} } for( i=0;i<k;i++) { if(sign[i]=='+'||sign[i]=='-') {number[i]=count(number[i],number[i+1],sign[i]); cout<<number[i]; for(m=i;m<k-i;m++) {sign[m]=sign[m+1];number[m+1]=number[m+2];} k--;i--;} } for (i=0;i<3;i++) {cout<<number[i]; } cout<<k; }

2.堆栈
#include "string" #include "iostream" #include #include #include using namespace std; //自定义类型 用于存储 两种数据类型 class newType { public: bool flag;//true 为f false 为 c union { float f; char c; }data; }; //将字符串转换为 数字数组和字符数组 (通用提取字符串中数字) bool couvert(string str,vector &numbers,vector &chars,vector &all)//这里要使用引用 { int len=str.length(); bool flag=true; int pos=0; for(int i=0;i='0'&&str[i] numbers, vector chars,float &value) { //计算四者表达式 无括号类型 1+2*3+4 int ii=0; //先计算乘除 while(ii all,float &value) { int pos=0; vector numbers; vector chars; float va=0; for(int i=0;i numbers; vector chars; vector all; couvert(str, numbers, chars,all); for(int i=0;i<all.size();i++) { if (all[i].flag) { cout<<all[i].data.f<<" "; } else { cout<<all[i].data.c<<" "; } } float value,value1; // calculate(numbers,chars,value); calculate1(all,value1); cout<<value1; }

这是我翻家底找到的 .

#include <stdio.h>
int jisuan(int a,int b,char fu)
{
if(fu=='+') return a+b;
if(fu=='-') return a-b;
if(fu=='*') return a*b;
if(fu=='/') return a/b;
}

int fun(char *ss,int n)
{
int i,flag=0;
if(n==1) return ss[0]-'0';
for(i=0;i<n;i++)
{
if((ss[i]=='+')||(ss[i]=='-'))//扫描加减号
{
flag = 1;
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("输入算数:");
scanf("%s",s);
n = strlen(s);
printf("=%d
",fun(s,n));
}

用的递归,这样省去很多麻烦



本人用C-Free编写的运算程序,亲测可用

#include <stdio.h>

int main()
{
int eof=1; 
double number1,number2,sum;
char symbol;
printf("请输入需要计算的第一个数字(按回车键结束):");
scanf("%lf",&number1);
printf("请输入需要计算的第二个数字(按回车键结束):");
scanf("%lf",&number2);
printf("请输入运算符号(只能输入+-*/按回车键结束):");
while(eof)  //判断输入的运算符号是否为四则运算 
{
getchar();    //消除回车键留下的字符,防止下次scanf函数接收回车键
scanf("%c",&symbol);
if((symbol=='+')||(symbol=='-')||(symbol=='*')||(symbol=='/')) eof=0;
else printf("你的输入有误,重新输入:");
}
  switch(symbol) //判断运算符号从而计算 
  {
  case '+':sum=number1+number2;
printf("%g+%g=%g",number1,number2,sum);    //%g合适格式输出 
break;
case '-':sum=number1-number2;
  printf("%g-%g=%g",number1,number2,sum);
  break;
case '*':sum=number1*number2;
  printf("%g*%g=%g",number1,number2,sum);
  break;
case '/':sum=number1/number2;
  printf("%g/%g=%g",number1,number2,sum);
  break;
default :break;
  }
  putchar(10); //换行 
  return(0);
}


void main()
{ float a,b;char c;
printf("Please enter your math;");
scanf("%d%c%d",&a,&c,&b);
switch(c)
{case'+':printf("a+b=%f\n",a+b);break;
case'-':printf("a-b=%f\n",a-b);break;
case'*':printf("a*b=%f\n",a*b);break;
case'/':{if(b!=0) printf("a/b=%f\n",a/b);
else printf("b=0");
}break;
case'%':{if(b!=0) printf("a mod b=%d\n",a%b);
else printf("b=0");
}break;
default:printf("Data out of range");
}
}

怎么用C语言编写计算器程序?
想要驾驭C语言,编写一个功能强大的计算器程序并不复杂。下面,让我们一起探索一个基础且实用的C语言计算器代码示例,它涵盖了加、减、乘、除四则运算,展示了基础编程逻辑的魅力:<?xml version="1.0" encoding="UTF-8"?><\/<\/<\/#include <stdio.h><\/int main() {<\/ char operator;<...

c语言设计一个简单的计算器程序
#include<stdio.h>//计算器 voidmenu()//自定义的菜单界面 { printf("---\n");printf("请输入你的选择\n");printf("1.+\n");printf("2.-\n");printf("3.*\n");printf("4./\n");printf("---\n");} intmain(){ int...

用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语言 要求编写一个简单计算器的程序
include<stdio.h>void main() { float x,y,z; char c; scanf("%f%c%f",&x,&c,&y); switch ( c ) { case '+': z=x+y; break; case '-': z=x-y; break; case '*': z=x*y; break; case '\/': z=( y==0 )?(0):(x\/y); break; default:...

用C语言做个简单的计算器 要有加减乘除 先乘后加 先算括号里的
include<stdio.h> include<string.h> int add(int x,int y);int sub(int x,int y);int mul(int x,int y);int div(int x,int y);int getach(); \/\/用于获取一个合法字符 int getid(); \/\/对合法字符进行判断处理 int cal(); \/\/计算表达式的值 int num,curch;int (*fun...

用c语言程序设计一个简单计算器,求其源代码
double num1 = 0, num2 = 0, result = 0;char str1[] = "1230.456+-789*\/知消扒Qc=^%";char cnum[5], str2[20] = "", c;int x, y, x0, y0, i, j, v, m, n, act, flag = 1;\/* Function prototypes *\/ void drawboder(void);void initialize(void);void computer...

用c语言编一个计算器程序,能够实现基本的加减乘除,能够输出运算对象...
include <stdio.h>int main(void){double a, b;int chose;printf("欢迎使用我的计算器\\n");while (1){printf("***\\n");printf("1、两数相加\\n");printf("2、两数相减\\n");printf("3、两数相乘\\n");printf("4、两数相除\\n");printf("5、退出\\n");printf("***\\n");scanf(...

用c语言编程简单的加减乘除以及混合运算的计算器
用c语言编程简单的加减乘除以及混合运算的计算器  我来答 1个回答 #热议# 张桂梅帮助的只有女生吗?huafeng86999 2010-07-03 · TA获得超过258个赞 知道小有建树答主 回答量:262 采纳率:100% 帮助的人:203万 我也去答题访问个人页 关注 展开全部 #include <stdio.h>#include <stdlib.h>#...

用C语言做一个计算器,能实现加减乘除混合运算?
是的,可以使用C语言编写一个计算器程序,能够实现加、减、乘、除等混合运算。下面是一个简单的示例程序:```c include <stdio.h> int main() { char operator;double num1, num2, result;printf("Enter an operator (+, -, *, \/): ");scanf("%c", &operator);printf("Enter two ...

用c语言编一个简单的加减乘除的计算器程序 不需要很复杂 只要能进行两...
int main(){ char exp[8];printf("enter exp:\\n");scanf("%s",exp); \/\/输入类似于1+1 2*5这样的式子,一次一个 switch(exp[1]){ case '+':printf("%d\\n",exp[0]-'0'+exp[2]-'0'); break;case '-':printf("%d\\n",exp[0]-exp[2]); break;case '*':printf("%d\\...