四则小运算

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string>
bool CheckSymbol(char s)
{
    char ch[4]={'+','-','*','/'};
    for (int i=0;i<4;i++)
    {
        if(s==ch[i]) return true;
    }
  return false;
}
 
bool CheckValid(const char p[10])
{
   
  int start=-1,i=0;
  while (p[i])
   {
      if(isdigit(p[i])||p[i]=='.')
      {
        if(start==-1)
        {
           start=i;
        }
      }
      else
      {
         return false;
      }
      i++;
   }
         
  return true;
}
void main(void)
{
    char b[10],ch;
    float a,c,digits[1];
    scanf("%f%c%s",&a,&ch,b);
    if(CheckValid(b))
    {
        if (CheckSymbol(ch))
        {
            digits[0]=atoi(b);
            if (ch=='+')
                c=a+digits[0];
            if (ch=='-')
                c=a-digits[0];
            if (ch=='*')
                c=a*digits[0];
            if (ch=='/')
            {
                if(digits[0]==0)printf("除数不能为零\n");
                else c=a/digits[0];
                return;
            }
             
            printf("%5.2f%c%5.2f",a,ch,digits[0]),
                printf("="),
                printf("%5.2f\n",c);
        }
        else printf("四则运算符号有误\n");
    }
    else printf("error,右操作含有非法字符\n");
 
 }

posted @ 2016-03-12 18:45  徐宏磊  阅读(128)  评论(1编辑  收藏  举报