❶ c语言加减乘除运算代码
方法如下:
设备:华为笔记本。
系统:win7。
软件:Code Blocks。
版本:8.0.11。
1、首先打开Code Blocks软件,新建一个C语言文件,如下图所示。
❷ C语言中如何实现加减乘除运算
实现方法如下:
读入的时候用%x读入,然后在程序里面直接用+,-,*,/运算就行了,输出的时候再用%x。
❸ 用C语言怎样实现计算器加减乘除功能
我学c++时写的
#include<iostream.h>
#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<<strlong;
for(i=0;i<strlong;i++)
{
if(str[i]>='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<vector>
#include<list>
#include<cstdlib>
using namespace std;
//自定义类型 用于存储 两种数据类型
class newType
{
public:
bool flag;//true 为f false 为 c
union
{
float f;
char c;
}data;
};
//将字符串转换为 数字数组和字符数组 (通用提取字符串中数字)
bool couvert(string str,vector<float> &numbers,vector<char> &chars,vector<newType> &all)//这里要使用引用
{
int len=str.length();
bool flag=true;
int pos=0;
for(int i=0;i<len;i++)
{
if(str[i]>='0'&&str[i]<='9'||str[i]=='.')
{
if (flag)
{
string substr=str.substr(i,len) ;
float f=atof(substr.data());
numbers.push_back(f);
//添加f到all向量中
newType n;
n.data.f=f;
n.flag=true;
all.push_back(n);
}
flag=false;
}
else
{
//chars.push_back(str[i]);
chars.push_back(str[i]);
newType n;
n.data.c=str[i];
n.flag=false;
all.push_back(n);
flag=true;
}
}//for
return true;
}
//计算没有括号的表达式
bool calculate(vector<float> numbers,
vector<char> chars,float &value)
{
//计算四者表达式 无括号类型 1+2*3+4
int ii=0;
//先计算乘除
while(ii<chars.size())
//注意while(ii<(chars.size()-2)) 和while(ii<chars.size()-2) 区别
{
switch(chars[ii])
{
case '*':
numbers[ii]=numbers[ii]*numbers[ii+1];
numbers.erase(numbers.begin()+ii+1); //移除number[ii]后面的数
chars.erase(chars.begin()+ii); //移除chars[ii]
ii--;
break;
case '/':
numbers[ii]=numbers[ii]/numbers[ii+1];
numbers.erase(numbers.begin()+ii+1);
chars.erase(chars.begin()+ii);
ii--;
break;
}
ii++;
}
//只剩下加减 计算加减
ii=0;
while(ii<chars.size())
//注意while(ii<(chars.size()-2)) 和while(ii<chars.size()-2) 区别
{
switch(chars[ii])
{
case '+':
// cout<<"+::"<<numbers[ii]<<chars[ii]<<numbers[ii+1]<<endl;
numbers[ii]=numbers[ii]+numbers[ii+1];
numbers.erase(numbers.begin()+ii+1); //移除number[ii]后面的数
chars.erase(chars.begin()+ii); //移除chars[ii]
break;
case '-':
// cout<<"-::"<<numbers[ii]<<chars[ii]<<numbers[ii+1]<<endl;
numbers[ii]=numbers[ii]-numbers[ii+1];
numbers.erase(numbers.begin()+ii+1);
chars.erase(chars.begin()+ii);
break;
}
// ii++;
}
value=numbers[0];//得到值
return true;
}
//计算带括号的表达式
int calculate1( vector<newType> all,float &value)
{
int pos=0;
vector<float> numbers;
vector<char> chars;
float va=0;
for(int i=0;i<all.size();i++)
{
if (all[i].flag)//判断是数字还是字符
{
cout<<"数字"<<i<<":"<<all[i].data.f<<endl;
}
else
{
cout<<"字符"<<i<<":"<<all[i].data.c<<endl;
if (all[i].data.c==')') //如果是右括号 将之前的()之间的括号内容
{ //用calculate计算 并替换
for (int j=pos+1;j<i;j++) //参数转换
{
if (all[j].flag)
{
numbers.push_back(all[j].data.f);
} else{
chars.push_back(all[j].data.c);
}
}
calculate(numbers,chars,va);
numbers.clear();
chars.clear();
newType ne;
ne.data.f=va;
all.erase(all.begin()+pos,all.begin()+i+1);
all.insert(all.begin()+pos,ne);
i=pos+1;
}
else if (all[i].data.c=='(')
{
pos=i;//记录此时左括号的位置
}
}//else
}//for
for(int kk=0;kk<all.size();kk++)
{
if (all[kk].flag)
{
numbers.push_back(all[kk].data.f);
} else{
chars.push_back(all[kk].data.c);
}
}
for( i=0;i<all.size();i++)
{
if (all[i].flag)
{
cout<<all[i].data.f<<" ";
} else
{
cout<<all[i].data.c<<" ";
}
}
calculate(numbers,chars,value);
return 1;
} void main()
{
//
string str="10+(2*3+8)+(10*2)";
vector<float> numbers;
vector<char> chars;
vector<newType> 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;
}
这是我翻家底找到的 .
❹ C语言实现加减乘除运算
按照你的程序运行后。。。在输入c值的时候
程序直接结束了。。。还有就是每个case语句后记着加上break跳出不过也有不过根据具体需要也可以不加break;但是你的这个程序需要加上break;
原因是:回车符也是字符,所以你按回后,程序以为是输入了c的值了,而在输入b值成功是因为
回车符不是数字形式的。
以下是我改过的程序,编译运行都很好的
#include
#include
void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
//这种情况经常遇到。。。。输入完后回车被下一个scanf("%c",&c)捕获了。
//因为回车符也是字符,所以你按回车后,程序以为是输入了c的值了
//所以加上下面一行,把回车符取走就可以了。。。。
getchar();
printf("\n input c:");
scanf("%c",&c);
//printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
//为了好看
printf("\n");
}
❺ c语言实现简单的加减乘除
1、打开C-Free5.0新建一个空白页面,然后将C语言的基础格式写完,注意格式缩进。如下图所示。
❻ C语言计算加减乘除
简单写了一个如下:
#include<stdio.h>
#include<string.h>
intmain()
{
doublea,b;
charop;
scanf("%lf%c%lf",&a,&op,&b);
if(op=='+'){
printf("%g+%g=%g",a,b,a+b);
}
elseif(op=='-'){
printf("%g-%g=%g",a,b,a-b);
}
elseif(op=='*'){
printf("%g*%g=%g",a,b,a*b);
}
elseif(op=='/'){
printf("%g/%g=%g",a,b,a/b);
}
return0;
}
❼ 简单的c语言加减乘除运算
#include"stdio.h"
intchuli(inti);
voidmain()
{
inta=0,i=0,x=0,u=0,s[100],zi,b=0;
charc,f[100];
for(i=0;;i++)
{
for(x=0;(c=getchar())>='0'&&c<='9';x++)
{
u=c-'0';
if(x==0)
zi=u;
elsezi=zi*10+u;
}
s[a]=zi;
if(c!='['&&c!=']')
f[a++]=c;
if(c=='[')
s[0]=chuli(i);
if(c=='=')
break;
}
for(a=0;a<=i;a++)
{
x=a+1;
if((f[a]=='*'||f[a]=='/')&&b==0){u=a;b=1;}
if(f[a]=='+'||f[a]=='-')b=0;
if(f[a]=='*'){s[u]=s[u]*s[x];f[a]='+';s[x]=0;}
if(f[a]=='/'){s[u]=s[u]/s[x];f[a]='+';s[x]=0;}
}
for(a=0;a<=i;a++)
{
x=a+1;
if(f[a]=='+'){s[0]=s[0]+s[x];}
if(f[a]=='-'){s[0]=s[0]-s[x];}
}
printf("%d",s[0]);
}
intchuli(inti)
{
intshu[100],d=0,f=0,g=0,ha,l=0,q=0;
charw,fu[100];
for(d=0;;d++)
{
for(f=0;(w=getchar())>='0'&&w<='9';f++)
{
g=w-'0';
if(f==0)ha=g;
elseha=ha*10+g;
}
shu[l]=ha;
if(w!='['&&w!=']')fu[l++]=w;
if(w==']')break;
}
for(l=0;l<=d;l++)
{
g=l+1;
if((fu[l]=='*'||fu[l]=='/')&&q==0){f=l;q=1;}
if(fu[l]=='+'||fu[l]=='-')q=0;
if(fu[l]=='*'){shu[f]=shu[f]*shu[g];fu[l]='+';shu[g]=0;}
if(fu[l]=='/'){shu[f]=shu[f]/shu[g];fu[l]='+';shu[g]=0;}
}
ha=shu[0];
for(l=0;l<=d;l++)
{
g=l++;
if(fu[l]=='+')ha=ha+shu[g];
if(fu[l]=='-')ha=ha-shu[g];
}
ha=99;
printf(" %d ",ha);
returnha;
}
❽ C语言的基本运算
算术运算
C语言一共有34种运算符,包括了常见的加减乘除运算
加法运算+
减法运算-
乘法运算*
除法运算/
取余运算%
自增自减
简单使用
5++是错误的
++a和a++的区别
sizeof
作用
基本形式
逻辑运算
1.&& 逻辑与
1> 使用格式
2> 运算结果
3> 运算过程
4> 举例
5> 注意
|| 逻辑或
1> 使用格式
2> 运算结果
3> 运算过程
4> 举例
5>注意
! 逻辑非
1> 使用格式
2> 运算结果
3> 举例
4> 注意
三目运算符
N目运算符->三目运算符