使用namespace std;
if(isset($_POST['submit']))
{
echo 'Would you like a hamburger 2';
<p>
<input type = 'radio' name = 'hamburger' value "yes">yes <p>
<input type = 'radio' name = 'hamburger 'value "no"> no<p>
</p>
<p><input type="submit" value="submitform2" name ="submitform2" /></p>
<?php
}
if(isset($_POST["submitform2"]))
{
$hamburger = $_POST['hamburger'];
if($hamburger == 'yes')
{
}
?>
<p><input type="submit" value="submitThirdForm" name ="submitThirdForm" /></p>
<?php
}
我是编程新手。我正在使用中缀转换后缀但遇到错误:
class stack
{
char data[30];
int top;
public:
void init()
{
top=-1;
}
int is_empty();
void push(char);
char pop();
int precedence(char);
};
int stack::is_empty()
{
if(top==-1)
return(1);
return 0;
}
void stack::push(char op)
{
top++;
data[top]=op;
}
char stack::pop()
{
char x;
x=data[top];
top--;
return(x);
}
int stack::precedence(char op)
{
if(op=='(')
return(1);
if(op=='+' || op=='-')
return(2);
if(op=='*' || op=='/' || op=='%')
return(3);
if(op=='^')
return(4);
return(5);
}
int main()
{
stack s;
string iexp,pexp;
int i,j;
j=0;
char op;
s.init();
cout<<"\n enter an infix expr.: ";
cin>>iexp;
for(i=0;i<iexp.length();i++)
{
if(isalpha(iexp.at(i)))
{
pexp.at(j)=iexp.at(i);
j++;
}
else
{
if(s.is_empty())
{
s.push(iexp.at(i));
}
else
{
if(iexp.at(i)=='(')
{
s.push(iexp.at(i));
}
if(iexp.at(i)==')')
{
while((op=s.pop())!='(')
{
pexp.at(j)=op;
j++;
}
}
while(s.precedence(iexp.at(i))<=s.precedence((op=s.pop())))
{
pexp.at(j)=op;
j++;
}`
s.push(iexp.at(i));
}
}
``}
while(!s.is_empty())
{
op=s.pop();
pexp.at(j)=op;
j++;
}
pexp.at(j)='\0';
cout<<"\n postfix expr. is : \t"<<pexp;
return 0;
}
所以请帮我解决这个问题。
答案 0 :(得分:0)
我认为你不能使用
附加到字符串pexp.at(j) = ...;
尝试使用
pexp += ...;
代替(在你附加到pexp的所有地方)