#4636: 程式碼很短 請幫我檢查出了什麼問題


stmharry (橘子皮)


#include <iostream>
#include <string>
using namespace std;

int main()
{
    string input;
    
    while(getline(cin, input))
    {
                         int *buffer=new int[input.length()];
                         int store=-1;
                         
                         for(int read=0; input[read]!='\0'; read++)
                         {
                                 if( (47<input[read]) && (input[read]<58) ) buffer[++store]=(int)(input[read]-48);
                                 else if(input[read]=='+') buffer[store-1]+=buffer[store--];
                                 else if(input[read]=='-') buffer[store-1]-=buffer[store--];
                                 else if(input[read]=='*') buffer[store-1]*=buffer[store--];
                                 else if(input[read]=='/') buffer[store-1]/=buffer[store--];
                                 else if(input[read]=='%') buffer[store-1]%=buffer[store--];
                                 
                         }
                         
                         cout << buffer[0] << endl;
                         delete [] buffer;
    }
    
    return 0;
}
 
範例測資都沒問題啊
 
可是WA:line3了 

#4640: Re:程式碼很短 請幫我檢查出了什麼問題


stmharry (橘子皮)


#include
#include
using namespace std;

int main()
{
    string input;
    
    while(getline(cin, input))
    {
                         int *buffer=new int[input.length()];
                         int store=-1;
                         
                         for(int read=0; input[read]!='\0'; read++)
                         {
                                 if( (47
                                 else if(input[read]=='+') buffer[store-1]+=buffer[store--];
                                 else if(input[read]=='-') buffer[store-1]-=buffer[store--];
                                 else if(input[read]=='*') buffer[store-1]*=buffer[store--];
                                 else if(input[read]=='/') buffer[store-1]/=buffer[store--];
                                 else if(input[read]=='%') buffer[store-1]%=buffer[store--];
                                 
                         }
                         
                         cout << buffer[0] << endl;
                         delete [] buffer;
    }
    
    return 0;
}
 
範例測資都沒問題啊
 
可是WA:line3了 

 
我知道了= =
只能取一位XD