微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在第37行倒数第二行中,该错误表示为此处未声明,不是在函数中对我有帮助

如何解决在第37行倒数第二行中,该错误表示为此处未声明,不是在函数中对我有帮助

如您所见,在这代码中,我正在尝试从后缀转换为中缀

#include <stdio.h>
#include <stdlib.h>

    double compute(char symbol,double op1,double op2)

    {
        switch(symbol)
        {
            case '+': return op1+op2;
            case '-': return op1-op2;
            case '*': return op1*op2;
            case '$':
            case '^': return (op1,op2);
    
        }
    }
    main()
    {
        double s[20],res,op1,op2;
        int top,i;
        char postfix[20];
        char symbol;
        printf("Enter postfix");
        scanf("%s",postfix);
        top=-1;
        for(i=0;i<stlen(postfix);i++)
            symbol=postfix[i];
        if(isdigit(symbol))
            s[++top]=symbol='0';
        else
        {
            op2=s[top--];
            op1=s[top--];
        }
        res=compute(symbol,op2);
        s[++top]=res;
    }
    res=s[top--];
    printf("res is %d",res);
}

我可能在这里遗漏了一些东西,因为它表明s未声明,但是正如您所看到的,我在s之后两次声明了main()

解决方法

这3行不在任何范围内

res=s[top--];
printf("res is %d",res);
}

这就是为什么您有错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。