C++实现顺序计算输入表达式的值详解编程语言

#include <iostream> 
#include <cstring> 
#include <cctype>//判断字符类型需要的头文件 
using namespace std; 
int main() 
{ 
 
        string str; 
    l:    cin>>str; 
        char *a; 
          strncpy(a,str.c_str(),str.length());//将输入的字符串转换为字符数组  
        int b[100]; 
        char c[100];//准备b,c数组分别来存储依次输入的数字与运算符字符  
        int k=0,l=0; 
        int sum=0; 
         for(int i=0;i<str.length();i++) 
        { 
            if(isdigit(a[i])) 
            { 
                b[k++]=a[i]-48; 
            } 
            else 
            { 
                if(a[i]!='+' && a[i]!='-' && a[i]!='*')//来判断输入的运算符是否合理。  
                { 
                    cout<<"输入有误:请重新输入:(只能是包含数字和+ - *字符)"<<endl; 
                    goto l; 
                } 
                else 
                { 
                    c[l++]=a[i];     
                } 
                 
            } 
        } 
         int count=0; 
         for(int i=0;i<100;i++) 
         { 
             if(b[i]!=0) 
             { 
                 count++; 
             } 
         } 
        int z=1; 
        sum=b[0]; 
        while(z<count)  
        { 
            int zz=z-1; 
            switch(c[zz])//来判断输入的运算符。  
            {  
            case '+': 
                sum=sum+b[z]; 
                break; 
            case '-': 
                sum-=b[z]; 
                break; 
            case '*': 
                sum=sum*b[z]; 
                break; 
            } 
            ++z; 
        } 
        cout<<sum<<endl;   //输出最终结果。  
    return 0; 
} 
        

如下实例:

C++实现顺序计算输入表达式的值详解编程语言

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/11761.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论