正文
c语言计算器如何连续运算,c语言计算器多个连续运算
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言编计算器,实现连续运算,该怎么办?给个思路就行。谢谢了。
能够进行任意多个数的加减乘除四则运算,比如想要计算1+2+3,输入1+2+3=,得到结果6
#include stdio.h
int jia(int a,int b)
{
int s;
s=a+b;
return s;
}
int jian(int a,int b)
{
int s;
s=a-b;
return s;
}
int cheng(int a,int b)
{
int s;
s=a*b;
return s;
}
int chu(int a,int b)
{
int s;
s=a/b;
return s;
}
void main()
{
int a,b,x,y,i;
char c;
printf("请输入运算式:\n");
scanf("%d%c%d",a,c,b);
x=a;
y=b;
for(i=0;;i++)
{
if(c=='+')x=jia(x,y);
else if(c=='-')x=jian(x,y);
else if(c=='*')x=cheng(x,y);
else if(c=='/')x=chu(x,y);
c=getchar();
if(c=='=')
{
printf("%d\n",x);
break;
}
scanf("%d",y);
}
}
用C语言编写一个计算器程序,用选择和循环语句,要能够重复连续运算
void
main()
{
int
a,b,result;
char
m;
printf("请输入需要计算的数:\n");
scanf("%d
%d",a,b);
printf("请输入加、减、乘或除\n");
scanf("%c",m);
if(m=="+")
//判断是否进行加法运算,以下同理
result=a+b;
else
if(m=="-")
result=a-b;
elsee
if(m=="*")
result=a*b;
else
if(m=="/")
result=a/b;
else
printf("您输入有误\n");
//如果输入的符号非加减乘或是除,报错
printf("计算结果为:%d\n",result);
//最后输出结果
}
求教:C语言如何实现连续运算
#includestdio.h
#includestring.h
#includestdlib.h
int main(void)
{
int a,b,result;
char op;
printf("please input two num and op:\n");
scanf("%d %d %c",a,b,op);
switch(op)
{
case'+':
printf("result=%d\n",a+b);
break;
case'-':
printf("result=%d\n",a-b);
break;
case'*':
printf("result=%d\n",a*b);
break;
case'/':
if(b!=0)
printf("result=%d\n",a/b);
break;
default:
printf("invalid\n");
break;
}
return 0;
}
简单的一个计算器 可以加减乘除 (纯手打 望采纳)
c语言如何实现计算器按任意键继续下一个运算 可不可以利用for循环实现?
这里必须有一个等待用户输入的过程,整个程序倒是在一个循环体内。
这个循环体的内容包括:
1. 等待用户输入
2. 状态判断,是数字的输入,还是运算符输入
3. 根据输入,决定是否需要计算结果,并输出
4. 回到循环头上
这里“等待用户输入”,可以利用conio.h中的函数getch
如果是Windows编程,那就是响应按键消息
如何用c++编写一个连续加减乘除的计算器,函while语句
#include stdio.h
#include iostream
#include stack
#include string
#include vector
#include sstream
#include stdlib.h
using namespace std;
vectorpairint, string f(string s)
{
vectorpairint, string v;
char ch[100];
string str;
int i=0, j;
while (s[i] != '\0')
{
if (s[i] == '(')
{
str = s[i++] + '\0';
v.push_back(make_pairint, string (1, str));
}
else if (s[i] == ')')
{
str = s[i++] + '\0';
v.push_back(make_pair int, string(2, str));
}
else if (s[i] == '+' || s[i] == '-')
{
str = s[i++] + '\0';
v.push_back(make_pair int, string(3, str));
}
else if (s[i] == '*' || s[i] == '/')
{
str = s[i++] + '\0';
v.push_back(make_pair int, string(4, str));
}
else if(s[i] == ' ')
{
i++;
continue;
}
else if (s[i] = '9' s[i] = '0' || s[i] == '.')
{
bool dian;
if(s[i] == '.')
dian = true;
j = 1;
ch[0] = s[i++];
int k = 1;
while(s[i] = '9' s[i] = '0' || s[i] == '.')
{
if(s[i] == '.' dian)
{
cout"输入2个小数点了"endl;
while(1);
}
ch[j] = s[i];
++j;
++i;
}
ch[j] = '\0';
v.push_back(make_pair int, string (0, ch));
dian = false;
}
}
return v;
}
bool bijiao(int n, string a)
{
int m;
if(a == "+" || a == "-")
m=3;
else if(a == "*" || a == "/")
m=4;
else if(a == "#")
m=-1;
return nm?true:false;
}
stackstring f_nbl(vectorpairint, string v)
{
stackstring s, f;
f.push("#");
for(vectorpairint, string ::iterator xi = v.begin(); xi != v.end(); ++xi)
{
if(xi-first == 0)
s.push(xi-second);
else
{
if(xi-first == 1)
f.push(xi-second);
else if(xi-first == 2)
{
while(f.top() != "(")
{
s.push(f.top());
f.pop();
}
f.pop();
}
else if(f.top() == "(")
f.push(xi-second);
else
{
if(f.top() == "#")
{
f.push(xi-second);
}
else
{
if(bijiao(xi-first, f.top()))
f.push(xi-second);
else
{
while(!bijiao(xi-first, f.top()))
{
s.push(f.top());
f.pop();
}
f.push(xi-second);
}
}
}
}
}
while(f.top() != "#")
{
s.push(f.top());
f.pop();
}
f.pop();
while(!s.empty())
{
f.push(s.top());
s.pop();
}
return f;
}
double f_js(stackstring s)
{
double a, b;
string ch;
stackdouble p;
while(!s.empty())
{
while(s.top() != "+" s.top() != "-" s.top() != "*" s.top() != "/")
{
p.push(atof(s.top().c_str()));
if (s.size())
s.pop();
}
ch = s.top();
if (s.size())
s.pop();
b = p.size() ? p.top() : 0;
if (p.size())
p.pop();
a = p.size() ? p.top() : 0;
if (p.size())
p.pop();
switch(ch[0])
{
case '+' : p.push(a + b); break;
case '-' : p.push(a - b); break;
case '*' : p.push(a * b); break;
case '/' : if(b==0.0)
{
cout"除数不能为0"endl;
while(1);
}
else
p.push(a / b);
break;
}
}
return p.size() ? p.top() : 0;
}
int main()
{
string s;
while (s != "quit")
{
cout"请输入算式:"endl;
cins;
couts"="f_js(f_nbl(f(s)))endl;
}
return 0;
}
c语言计算器如何连续运算的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言计算器多个连续运算、c语言计算器如何连续运算的信息别忘了在本站进行查找喔。