C语言不用scanf函数的一个简单的计算器

#include <stdio.h>
#include <stdlib.h>
#include "windows.h"
#include "stdbool.h"
#include "conio.h"
bool z,ez;
void cal(int esc)
{
 bool i=0;
 int y[10]={0};
    int a,b,c,d,e;
    int x,j,k;
    char ch;
    d=esc;
    if(d=='-')printf("%c",'-');
    else printf("%c",d);
    j=0;
    do
    {
  x=getche();
        y[j]=x;
        j++;
    }
    while(x>='0'&&x<='9');
    j--;
    if(d!='-')
    {
  a=d-'0';
  for(k=0;k<j;k++)
  {
   a=a*10+y[k]-'0';
  }
    }
    else
    {
  a=0;
        for(k=0;k<j;k++) a=a*10+y[k]-'0';
        a=0-a;
    }
    if(d<'0'||d>'9')x='a';
    ch=x;
    e=getche();
    j=0;
    do
    {
  x=getche();
        y[j]=x;
        j++;
    }
    while(x>='0'&&x<='9');
    j--;
    if(e>='0'&&e<='9')
    {
  b=e-'0';
  for(k=0;k<j;k++)
  {
   b=b*10+y[k]-'0';
  }
    }
 else if(e=='-')
    {
  b=0;
  for(k=0;k<j;k++)
        {
   b=b*10+y[k]-'0';
        }
        b=0-b;
    }
    else ch='a';
    if(x!='=') ch='a';
    switch(ch)
    {
  case '+':c=a+b;break;
        case '-':c=a-b;break;
        case '*':c=a*b;break;
        case '/':c=a/b;break;
        default :i=1;printf("\n你输入的表达式是错误的!\n");ez=1;break;
    }
    if(!i) printf("%d\n",c);
}
int main()
{
 bool ex=0;
 int a,b;
 while(1)
    {
  if(!ez)printf("\n请输入一个表达式,如1+1= 要退出计算器请输入 e\n");
        else printf("请重新输入表达式,如1+1= 要退出计算器请输入 e\n");
        ez=0;
  a=getch();
        if(a!='e') cal(a);
  else
        {
   printf("退出计算器:y/n ?\n");
            while(!ex)
            {
    b=getch();
                if(b=='y'){z=1;break;}
                if(b=='n') ex=1;
            }
            ex=0;
        }
        if(z)break;
    }
    printf("正在退出计算器...");
    Sleep(2000);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值