扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include"stdio.h"
专注于为中小企业提供成都网站建设、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业旅顺口免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
/*预处理命令*/
void
main()
/*主函数*/
{
double
a,b;
/*双精度实型变量说明*/
char
c,d;
/*变量说明*/
do
/*循环体*/
{
printf("input
a
(-*/)b\n");
/*输入提示*/
scanf("%lf%c%lf",a,c,b);
/*输入算术表达式*/
if(c=='
')
/*判断
*/
printf("=%0.2f",a
b);
/*输出a
b的值*/
else
if(c=='-')
/*判断-*/
printf("=%0.2f",a-b);
/*输出a-b的值*/
else
if(c=='*')
/*判断**/
printf("=%0.2f",a*b);
/*输出a*b的值*/
else
if(c=='/')
/*判断/*/
printf("=%0.3f",a/b);
/*输出a/b*/
else
/*不满足以上条件*/
printf("error");
/*输出错误*/
printf("\n\ninput\n");
/*输入\n*/
scanf("%c",d);
/*输入符号给d*/
}
/*循环体结束*/
while(d=='\n');
/*循环条件语句*/
}
总算看懂了,一个只能两个数相加减乘除的计算器何必写的那么复杂,竟然还用了六个函数,下面我写一个功能一样的,更精简方便的,只要一个函数。
/*
Note:Your
choice
is
C
IDE
*/
/*一个具有两个数加减乘除功能的计算器*/
#include
"stdio.h"
void
main()
{
int
iFirNum,iSecNum,iResult;
char
ch,ch1;
printf("请输入表达式如
5+6=
然后按回车键:");
scanf("%d%c%d%c",iFirNum,ch,iSecNum,ch1);
switch(ch)
{
case
'+':
iResult=iFirNum+iSecNum;
printf("%d+%d=%d\n",iFirNum,iSecNum,iResult);
break;
case
'-':
iResult=iFirNum-iSecNum;
printf("%d-%d=%d\n",iFirNum,iSecNum,iResult);
break;
case
'*':
iResult=iFirNum*iSecNum;
printf("%d*%d=%d\n",iFirNum,iSecNum,iResult);
break;
case
'/':
iResult=iFirNum/iSecNum;
printf("%d/%d=%d\n",iFirNum,iSecNum,iResult);
break;
default:
printf("输入表达式错误或该计算器不具备
%ch
功能\n",ch);
}
}
#include
void
main()
{
float
a,b;
char
d;
do
{
printf("Please
enter
the
two
Numbers,
separated
by
Spaces:\n");
scanf("%f
%f",a,b);
printf("Please
select
operation
way:
(-,*,/,^,s,!)\n");
scanf("%s",d);
switch(d)
{
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'/':
printf("a/b=%f\n",a/b);
break;
default:
printf("input
error\n");
}
printf("Do
you
want
to
continue(Y/N
or
y/n)");
fflush(stdin);
}
while(toupper(getchar())=='Y');
}
可以运行,不知道满不满足你的要求,你自己可以试试
在jisuanqi()已经输出,在main()又一次输出jisuanqi()的返回值a+b。可以修改如下:
#include
"stdio.h"
int
jisuanqi(int
a,char
c,
int
b)
{
switch(c)
{
case
'+':
printf("%d\n",a+b);
break;
case
'-':
printf("%d\n",a-b);
break;
case
'*':
printf("%d\n",a*b);
break;
case
'/':
printf("%d\n",a/b);
break;
}
return
0;
}
int
main(int
argc,
char*
argv[])
{
int
a,b;
char
c;
scanf("%d
%c
%d",a,c,b);
jisuanqi(a,c,b);
return
0;
}
#include stdio.h
struct s_node
{
int data;
struct s_node *next;
};
typedef struct s_node s_list;
typedef s_list *link;
link operator=NULL;
link operand=NULL;
link push(link stack,int value)
{
link newnode;
newnode=(link) malloc(sizeof(s_list));
if(!newnode)
{
printf("\nMemory allocation failure!!!");
return NULL;
}
newnode-data=value;
newnode-next=stack;
stack=newnode;
return stack;
}
link pop(link stack,int *value)
{
link top;
if(stack !=NULL)
{
top=stack;
stack=stack-next;
*value=top-data;
free(top);
return stack;
}
else
*value=-1;
}
int empty(link stack)
{
if(stack==NULL)
return 1;
else
return 0;
}
int is_operator(char operator)
{
switch (operator)
{
case '+': case '-': case '*': case '/': return 1;
default:return 0;
}
}
int priority(char operator)
{
switch(operator)
{
case '+': case '-' : return 1;
case '*': case '/' : return 2;
default: return 0;
}
}
int two_result(int operator,int operand1,int operand2)
{
switch(operator)
{
case '+':return(operand2+operand1);
case '-':return(operand2-operand1);
case '*':return(operand2*operand1);
case '/':return(operand2/operand1);
}
}
void main()
{
char expression[50];
int position=0;
int op=0;
int operand1=0;
int operand2=0;
int evaluate=0;
printf("\nPlease input the inorder expression:");
gets(expression);
while(expression[position]!='\0'expression[position]!='\n')
{
if(is_operator(expression[position]))
{
if(!empty(operator))
while(priority(expression[position])= priority(operator-data)
!empty(operator))
{
operand=pop(operand,operand1);
operand=pop(operand,operand2);
operator=pop(operator,op);
operand=push(operand,two_result(op,operand1,operand2));
}
operator=push(operator,expression[position]);
}
else
operand=push(operand,expression[position]-48);
position++;
}
while(!empty(operator))
{
operator=pop(operator,op);
operand=pop(operand,operand1);
operand=pop(operand,operand2);
operand=push(operand,two_result(op,operand1,operand2));
}
operand=pop(operand,evaluate);
printf("The expression [%s] result is '%d' ",expression,evaluate);
getch();
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流