c语言加减乘除运算编程
① 用c语言设计一个简单的加减乘除计算器 具体需要这样做
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。
2、输入预处理命令和主函数:#include /*函数头:输入输出头文件*/,void main()/*空类型:主函数*/。
3、定义变量:int a,b,d; /*定义变量的数据类型为整型*/,char c;/*定义变量的数据类型为字符型*/。
4、输入四则运算式:printf(输入如“3*4”或“5+2”的四则运算式:);/*输出文字提示*/scanf(%d%c%d,&a,&c,&b);/*输入四则运算式*/。
5、判断运算符号:switch(c) /*判断运算符号*/{case'+':d=a+b;break;/*进行加法6、运算*/case'-':d=a-b;break;/*进行减法运算*/case'*':d=a*b;break;/*进行乘法运算*/case'/':d=a/b;break; /*进行除法运算*/}。
7、输出结果:printf(%d%c%d=%d\n,a,c,b,d);/*输出结果*/。
② 请问怎么用c语言写一个可以实现加减乘除四则运算的计算器!
#include<stdio.h>
void
js(float*i,intj,charc)
{
floatm;
scanf("%f",&m);
if(c=='*')
i[j]=i[j]*m;
else
i[j]=i[j]/m;
}
voidjs2(float*i,char*c,intj,intk)
{
intl=0;
for(into=0;o<=k;o++)
{
if(c[o]=='+')
i[l+1]=i[l]+i[l+1];
else
i[l+1]=i[l]-i[l+1];
l++;
}
}
int
main(void)
{
intic=0,j=0,k=0;
floati[100];
charc[100];
while(1)
{
if(ic==0)
{
scanf("%f",&i[j++]);
ic=1;
}
if(ic=1)
{
c[k++]=getchar();
if(c[k-1]=='*'||c[k-1]=='/')
{
js(i,j-1,c[k-1]);
k--;
continue;
}
elseif(c[k-1]==' ')
break;
ic=0;
}
}
js2(i,c,j-1,k-2);
printf("%f",i[j-1]);
return0;
}
算法流程:
1,如果读入数字就把它存入数组中,
2,如果读入加,减号就存如另一个数组用,如果读入乘除号,就再读入一个数字,从存数字的数组拿出两个数字进行乘除运算。把结果存入数组中,这么重复直到读入回车键的符号。
3,读到回车符号后,就从存符号的数组中拿出一个符号,再从存数字的数组中拿出两个数字进行相应计算,接着再拿出一个数字一个符号和之前计算结果进行相应计算,一直重复,直到所有符号都拿出来了。
4,剩下的最后一个数字就是计算结果。
注:这个是我是我很久之前回答别人的,地址是https://..com/question/454652508527253645
③ 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语言加减乘除运算代码
方法如下:
设备:华为笔记本。
系统:win7。
软件:Code Blocks。
版本:8.0.11。
1、首先打开Code Blocks软件,新建一个C语言文件,如下图所示。
⑤ c语言实现简单的加减乘除
1、打开C-Free5.0新建一个空白页面,然后将C语言的基础格式写完,注意格式缩进。如下图所示。
⑥ 用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语言作业,编程实现两个整数的算数运算(加减乘除余)
#include<stdio.h>
main()
{
int a,b;
printf("Please input data a,b");
scanf("%d%d",&a,&b);
printf("\na+b=%d",a+b);
printf("\na-b=%d",a-b);
printf("\na*b=%d",a*b);
printf("\na/b=%d",a/b);
printf("\na%b=%d",a%b);
getch();
}