| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 549 人关注过本帖
标题:为什么会报错?求大神解决!
只看楼主 加入收藏
Henry1559
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2023-5-13
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
为什么会报错?求大神解决!
程序代码:
#include <bits/stdc++.h>
using namespace std;
int priority(char op){
    if(op=='+'||op=='-') return 1;
    else if(op=='*'||op =='/') return 2;
    else return 0;
}
float count(int a,int b,char op){ 
    if(op=='+') return a+b;
    else if(op=='-') return a-b;
    else if(op=='*') return a*b; 
    else if(op=='^') return pow(a,b);
    else return a/b;
}
int main() {
    string s;
    getline(cin,s);
    stack<float> num_;//数字
    stack<char> op_;//运算符
    for (int i=0;i<s.length();i++){
        if (s[i]>='0'&&s[i]<='9'){
            int num=0;
            while(i<s.length()&&isdigit(s[i])){
                num=num*10+(s[i]-'0');
                i++;
            }
            i--; // 
            num_.push(num);
        } 
        else if(s[i]=='(')
            op_.push(s[i]);
        else if(s[i] == ')'){
            while(!op_.empty()&&op_.top()!='(') {
                char op=op_.top();
                op_.pop();
                float b=num_.top();
                num_.pop();
                float a=num_.top();
                num_.pop();
                num_.push(count(a, b, op));
            }
            op_.pop();
        }
        else{ 
            while(!op_.empty()&&priority(op_.top())>=priority(s[i])) {
                char op = op_.top();
                op_.pop();
                float b=num_.top();
                num_.pop();
                float a=num_.top();
                num_.pop();
                num_.push(count(a, b, op));
            }
            op_.push(s[i]);
        }
    }
    while(!op_.empty()) { 
        char op=op_.top();
        op_.pop();
        float b=num_.top();
        num_.pop();
        float a=num_.top();
        num_.pop();
        num_.push(count(a,b,op));
    }
    printf("%f\n",&num_.top());
    return 0;
}
搜索更多相关主题的帖子: push return top float char 
2023-05-13 20:52
东海ECS
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:10 
倒数第3行:
printf("%f\n",&num_.top());
这里有冗余的&

会当凌绝顶,一览众山小.
2023-05-13 20:58
快速回复:为什么会报错?求大神解决!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043464 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved