编写计算器程序 c语言

程序功能要求:1.能够完成整数的加、减、乘、除、求余数计算。2.能够完成整数类型的乘幂运算。(如2的3次方,要求输入为2^3,输出为8)3.能够完成整数类型的十进制、n进... 程序功能要求:1. 能够完成整数的加、减、乘、除、求余数计算。2. 能够完成整数类型的乘幂运算。(如2的3次方,要求输入为2^3,输出为8)3. 能够完成整数类型的十进制、n进制互换运算。(如:十进制5转换成二进制,要求输入5&2;二进制101转换成十进制,要求输入101@2;)4. 输入运算符为?时程序结束退出。(如输入A?B,则程序结束。其中,A、B为任意数字)输出格式见测试样例。 对用户的限制要求:(编程时不需要考虑下列问题)1. 用户输入数字时不会出错,格式不会出错,但运算符可能出错。2. 输入数字时,不会输入负数,不会输入小数。输入数据及运算结果不会超出整形数范围。各位大神,帮帮忙,实在是急 展开
 我来答
378287007yx
2013-12-25 · TA获得超过148个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:198万
展开全部

#include <stdio.h>
#include <stdlib.h>
char s[]="0123456789abcdef",ss[100];
int f1(int x,int y)
{
 int t=1;
 while(y--) t*=x;
return t;
}
char *f2(int x,int y)
{
 int i=0,j;
 while(x){ss[i++]=s[x%y];x/=y;}
 ss[i]='\0';
 for(j=0,i--;j<i;j++,i--)
  ss[i]^=ss[j]^=ss[i]^=ss[j];
return ss;
}
int f3(int x,int y)
{
 int i=1,j=0;
 while(x){j+=x%10*i;x/=10;i*=y;}
 
return j;
}

void ff(int x,char t,int y)
{
 switch(t)
 {
  case '+':printf("%d+%d=%d\n",x,y,x+y);break;
  case '-':printf("%d-%d=%d\n",x,y,x-y);break;
  case '*':printf("%d*%d=%d\n",x,y,x*y);break;
  case '/':printf("%d/%d=%f\n",x,y,1.0*x/y);break;//y!=0
  case '^':printf("%d^%d=%d\n",x,y,f1(x,y));break;
  case '&':printf("%d&%d=%s\n",x,y,f2(x,y));break;
  case '@':printf("%d@%d=%d\n",x,y,f3(x,y));break;
  case '?':exit(0);
  default:printf("Error\n");
 }
}
int main(int argc, char *argv[])
{
 int x,y;
 char t;
 while(1)
 {
 scanf("%d%c%d",&x,&t,&y);
 ff(x,t,y);
 }
 return 0;
}


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式