计算器程序问题

dannyliuy 2007-04-14 08:22:58
#include <stdio.h>
void main()
{
char sign;
int x,y;
scanf("%d%c%d",&x,&sign,&y);
switch(sign)
{
case '+' :printf("%d%c%d=%d\n",x,sign,y,x+y);break;
case '-' :printf("%d%c%d=%d\n",x,sign,y,x-y);break;
case '*' :printf("%d%c%d=%d\n",x,sign,y,x*y);break;
case '/' :if(y==0) printf("error\n");
else printf("%d%c%d=%d\n",x,sign,y);
}}


-----|*偶是新人,请问这段不用switch语句,用if语句应怎么写(给点提示)*|-----
-----|* 谢谢各位老鸟 *|-----
...全文
256 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dmt9697 2007-04-17
  • 打赏
  • 举报
回复
想起当年我做计算器的时候了,楼主试着做输入 23.56+30*[2+3*(0.5+153*5)] 自动识别判断优先级,最后得出结果,很长知识的
少走弯路提示:用getch()获取计算式子的字符串,用栈判断运算符括号优先级
dannyliuy 2007-04-15
  • 打赏
  • 举报
回复
最后不加break都可以~~~因为后面有个}
mrdone 2007-04-14
  • 打赏
  • 举报
回复
你的少了一个break
dannyliuy 2007-04-14
  • 打赏
  • 举报
回复
呵呵,我试着写的跟2楼写的一样,只是在scanf("%d%c%d")处打了,号
x360995630 2007-04-14
  • 打赏
  • 举报
回复
#include<stdio.h>
int main()
{
char sign;
int x,y;
scanf("%d%c%d",&x,&sign,&y);
if(sign=='+')
{printf("%d%c%d=%d\n",x,sign,y,x+y);}
if(sign=='-')
{printf("%d%c%d=%d\n",x,sign,y,x-y);}
if(sign=='*')
{printf("%d%c%d=%d\n",x,sign,y,x*y);}
if(sign=='/')
{
if(y==0)
printf("Error\n");
else
printf("%d%c%d=%d\n",x,sign,y,x/y);
}
getchar();
getchar();
return 0;

}//我用的是devc++代码与你的代码略有不同
hellox 2007-04-14
  • 打赏
  • 举报
回复
else printf("%d%c%d=%d\n",x,sign,y);
===========================================
else printf("%d%c%d=%d\n",x,sign,y,x/y);

-_-!!
hellox 2007-04-14
  • 打赏
  • 举报
回复
int main()
{
char sign;
int x,y;
scanf("%d%c%d",&x,&sign,&y);

if(sign == '+') printf("%d%c%d=%d\n",x,sign,y,x+y);
if(sign == '-')printf("%d%c%d=%d\n",x,sign,y,x-y);
if(sign == '*')printf("%d%c%d=%d\n",x,sign,y,x*y);
if(sign == '/') {if(y==0) printf("error\n");
else printf("%d%c%d=%d\n",x,sign,y);
}
return 0;
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧