Zakończenie podawania wejścia - skąd wiedzieć kiedy wyświetlić wynik?

0

http://pl.spoj.com/problems/CALC/

Skąd mam wiedzieć, kiedy wyświetlić wyniki?
Przejrzałem http://pl.spoj.com/forum/viewtopic.php?f=10&t=1207 lecz nie wiem jak to wykorzystać.
To co udało mi sie zrobic:

 
#include <iostream>

using namespace std;

int main ()
{

    char znak;
    int L1, L2, wynik[101], lp=0;
    while(true)
    {
        if(cin.peek() == '\n')break;
        cin >> znak;
        cin >> L1 >> L2;

        switch(znak)
        {
            case '+':{
                wynik[lp] = L1 + L2;
                break;
            }
            case '-':{
                wynik[lp] = L1 - L2;
                break;
            }
            case '*':{
                wynik[lp] = L1 * L2;
                break;
            }
            case '/':{
                wynik[lp] = L1 / L2;
                break;
            }
            case '%':{
                wynik[lp] = L1 % L2;
                break;
            }
        }
        lp++;
    }
    //http://pl.spoj.com/problems/CALC/
    for(int n=0; n<lp+1; n++)
     cout<<wynik[n]<<endl;
}
2

Nie sprawdzałem logiki, poprawiłem tylko konwenanse SPOJ'a:

#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
  {
   char op;
   int a,b;
   while(cin>>ws>>op>>a>>b)
     {
      switch(op)
        {
         case '+': cout<<(a+b)<<endl;  break;
         case '-': cout<<(a-b)<<endl;  break;
         case '*': cout<<(a*b)<<endl;  break;
         case '/': cout<<(a/b)<<endl;  break;
         case '%': cout<<(a%b)<<endl;  break;
        }
     }
   return 0;
  }

Aby działało szybciej trzeba zrobić tak:

#include <cstdio>
using namespace std;
 
int main()
  {
   char op;
   int a,b;
   while(scanf(" %c%d%d",&op,&a,&b)==3)
     {
      switch(op)
        {
         case '+': printf("%d",a+b); break;
         case '-': printf("%d",a-b); break;
         case '*': printf("%d",a*b); break;
         case '/': printf("%d",a/b); break;
         case '%': printf("%d",a%b); break;
        }
     }
   return 0;
  }
0

Już rozumiem swoje złe rozumowanie. Myślałem, że konsola ma tak wyglądać:

+ 2 3
- 4 2
* 2 5
5
2
10

A okazało się, że może wyglądać tak:

+ 2 3
5
- 4 2
2
* 2 5
10

dodanie znaczników <code> - fp

Teraz już nie mam problemu ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1