C++的一个小程序,设计一个简单的计算器,我的程序的问题出在哪里
//设计一个计算器程序,能够根据键盘输入的操作数和运算符,做简单的加减乘除运算。//当输入“;”号时结束运算//测试数据为://输入操作数:3//输入运算符:+//输入操...
//设计一个计算器程序,能够根据键盘输入的操作数和运算符,做简单的加减乘除运算。
//当输入“;”号时结束运算
//测试数据为:
//输入操作数:3
//输入运算符:+
//输入操作数:40
//输出结果:43
//输入运算符:-
//输入操作数:23
//输出结果:20
//输入运算符:*
//输入操作数:2
//输出结果:40
//输入运算符:/
//输入操作数:8
//输出结果:5
//输入运算符:?
//运算符输入错误!
//输入运算符:;
//运算结束。
#include<iostream.h>
int add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a,int b);
int func(char m,int num,int q);
void main()
{
int p,q;
static num=0;
char m;
cin>>p>>m>>q;
num=p;
while(q!=';')
{
func(m,num,q);
cout<<num<<" ";
cin>>q;
}
}
int func(char m,int p,int q)
{
if(m=='+')
add(p,q);
else if(m=='-')
sub(p,q);
else if(m=='*')
mul(p,q);
else if(m=='/')
div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
int add(int a,int b)
{
a=a+b;
return a;
}
int sub(int a,int b)
{
a=a-b;
return a;
}
int mul(int a,int b)
{
a=a*b;
return a;
}
int div(int a,int b)
{
a=a/b;
return a;
}
//调用加减乘除函数没有起作用,而且有时候会出现死循环 展开
//当输入“;”号时结束运算
//测试数据为:
//输入操作数:3
//输入运算符:+
//输入操作数:40
//输出结果:43
//输入运算符:-
//输入操作数:23
//输出结果:20
//输入运算符:*
//输入操作数:2
//输出结果:40
//输入运算符:/
//输入操作数:8
//输出结果:5
//输入运算符:?
//运算符输入错误!
//输入运算符:;
//运算结束。
#include<iostream.h>
int add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a,int b);
int func(char m,int num,int q);
void main()
{
int p,q;
static num=0;
char m;
cin>>p>>m>>q;
num=p;
while(q!=';')
{
func(m,num,q);
cout<<num<<" ";
cin>>q;
}
}
int func(char m,int p,int q)
{
if(m=='+')
add(p,q);
else if(m=='-')
sub(p,q);
else if(m=='*')
mul(p,q);
else if(m=='/')
div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
int add(int a,int b)
{
a=a+b;
return a;
}
int sub(int a,int b)
{
a=a-b;
return a;
}
int mul(int a,int b)
{
a=a*b;
return a;
}
int div(int a,int b)
{
a=a/b;
return a;
}
//调用加减乘除函数没有起作用,而且有时候会出现死循环 展开
4个回答
展开全部
#include<iostream.h>
int add(int &a,int b);
int sub(int &a,int b);
int mul(int &a,int b);
int div(int &a,int b);
int func(char m,int &num,int q);
void main()
{
int p,q=0;
char m;
cin>>p>>m>>q;
do{
p=func(m,p,q);
cout<<p<<endl;
cin>>m>>q;
}while (m!=';');
}
int func(char m,int &p,int q)
{
if(m=='+')
p=add(p,q);
else if(m=='-')
p=sub(p,q);
else if(m=='*')
p=mul(p,q);
else if(m=='/')
p=div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
int add(int &a,int b)
{
a=a+b;
return a;
}
int sub(int &a,int b)
{
a=a-b;
return a;
}
int mul(int &a,int b)
{
a=a*b;
return a;
}
int div(int &a,int b)
{
a=a/b;
return a;
}
这样
int add(int &a,int b);
int sub(int &a,int b);
int mul(int &a,int b);
int div(int &a,int b);
int func(char m,int &num,int q);
void main()
{
int p,q=0;
char m;
cin>>p>>m>>q;
do{
p=func(m,p,q);
cout<<p<<endl;
cin>>m>>q;
}while (m!=';');
}
int func(char m,int &p,int q)
{
if(m=='+')
p=add(p,q);
else if(m=='-')
p=sub(p,q);
else if(m=='*')
p=mul(p,q);
else if(m=='/')
p=div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
int add(int &a,int b)
{
a=a+b;
return a;
}
int sub(int &a,int b)
{
a=a-b;
return a;
}
int mul(int &a,int b)
{
a=a*b;
return a;
}
int div(int &a,int b)
{
a=a/b;
return a;
}
这样
展开全部
问题出在:
1、
int func(char m,int p,int q)
{
if(m=='+')
add(p,q);
else if(m=='-')
sub(p,q);
else if(m=='*')
mul(p,q);
else if(m=='/')
div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
//p没赋值就直接返回了?
2、
while(q!=';')
{
func(m,num,q);
cout<<num<<" ";
cin>>q;
}
//新的操作数应该是函数func的返回值,但你的不是。
//操作符也没更新
自己再想想然后修改过来就可以了。
1、
int func(char m,int p,int q)
{
if(m=='+')
add(p,q);
else if(m=='-')
sub(p,q);
else if(m=='*')
mul(p,q);
else if(m=='/')
div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
//p没赋值就直接返回了?
2、
while(q!=';')
{
func(m,num,q);
cout<<num<<" ";
cin>>q;
}
//新的操作数应该是函数func的返回值,但你的不是。
//操作符也没更新
自己再想想然后修改过来就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream.h>
int add(int &a,int b);
int sub(int &a,int b);
int mul(int &a,int b);
int div(int &a,int b);
int func(char m,int &num,int q);
void main()
{
int p,q=0;
char m;
while(q!=';')
{
cin>>p>>m>>q;
func(m,p,q);
cout<<p<<endl;
}
}
int func(char m,int &p,int q)
{
if(m=='+')
add(p,q);
else if(m=='-')
sub(p,q);
else if(m=='*')
mul(p,q);
else if(m=='/')
div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
int add(int &a,int b)
{
a=a+b;
return a;
}
int sub(int &a,int b)
{
a=a-b;
return a;
}
int mul(int &a,int b)
{
a=a*b;
return a;
}
int div(int &a,int b)
{
a=a/b;
return a;
}
int add(int &a,int b);
int sub(int &a,int b);
int mul(int &a,int b);
int div(int &a,int b);
int func(char m,int &num,int q);
void main()
{
int p,q=0;
char m;
while(q!=';')
{
cin>>p>>m>>q;
func(m,p,q);
cout<<p<<endl;
}
}
int func(char m,int &p,int q)
{
if(m=='+')
add(p,q);
else if(m=='-')
sub(p,q);
else if(m=='*')
mul(p,q);
else if(m=='/')
div(p,q);
else
cout<<"运算符错误!"<<endl;
return p;
}
int add(int &a,int b)
{
a=a+b;
return a;
}
int sub(int &a,int b)
{
a=a-b;
return a;
}
int mul(int &a,int b)
{
a=a*b;
return a;
}
int div(int &a,int b)
{
a=a/b;
return a;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream.h>
int
add(int
&a,int
b);
int
sub(int
&a,int
b);
int
mul(int
&a,int
b);
int
div(int
&a,int
b);
int
func(char
m,int
&num,int
q);
void
main()
{
int
p,q=0;
char
m;
cin>>p>>m>>q;
do{
p=func(m,p,q);
cout<<p<<endl;
cin>>m>>q;
}while
(m!=';');
}
int
func(char
m,int
&p,int
q)
{
if(m=='+')
p=add(p,q);
else
if(m=='-')
p=sub(p,q);
else
if(m=='*')
p=mul(p,q);
else
if(m=='/')
p=div(p,q);
else
cout<<"运算符错误!"<<endl;
return
p;
}
int
add(int
&a,int
b)
{
a=a+b;
return
a;
}
int
sub(int
&a,int
b)
{
a=a-b;
return
a;
}
int
mul(int
&a,int
b)
{
a=a*b;
return
a;
}
int
div(int
&a,int
b)
{
a=a/b;
return
a;
}
这样
int
add(int
&a,int
b);
int
sub(int
&a,int
b);
int
mul(int
&a,int
b);
int
div(int
&a,int
b);
int
func(char
m,int
&num,int
q);
void
main()
{
int
p,q=0;
char
m;
cin>>p>>m>>q;
do{
p=func(m,p,q);
cout<<p<<endl;
cin>>m>>q;
}while
(m!=';');
}
int
func(char
m,int
&p,int
q)
{
if(m=='+')
p=add(p,q);
else
if(m=='-')
p=sub(p,q);
else
if(m=='*')
p=mul(p,q);
else
if(m=='/')
p=div(p,q);
else
cout<<"运算符错误!"<<endl;
return
p;
}
int
add(int
&a,int
b)
{
a=a+b;
return
a;
}
int
sub(int
&a,int
b)
{
a=a-b;
return
a;
}
int
mul(int
&a,int
b)
{
a=a*b;
return
a;
}
int
div(int
&a,int
b)
{
a=a/b;
return
a;
}
这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询