Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

SPOJ zadanie działa dobrze na komputerze, a przy sprawdzaniu błąd "błędna odpowiedź".

Ostatnio zmodyfikowano 2022-01-17 17:50
Autor Wiadomość
Masterofironfist
Temat założony przez niniejszego użytkownika
SPOJ zadanie działa dobrze na komputerze, a przy sprawdzaniu błąd "błędna odpowiedź".
» 2022-01-17 14:37:43
C/C++
#include <iostream>
using namespace std;

int main()
{
   
char znak = 0;
   
int N = 0;
   
int a = 0, b = 0;
   
cin >> N;
   
for( int i = 0; i < N; ++i )
   
{
       
cin >> znak >> a >> b;
       
if( znak == 42 )
           
 cout << a * b << "\n";
       
       
if( znak == 47 )
           
 cout << a / b << "\n";
       
       
if( znak == 43 )
           
 cout << a + b << "\n";
       
       
if( znak == 45 )
           
 cout << a - b << "\n";
       
       
if( znak == 37 )
           
 cout << a % b << "\n";
       
   
}
}
Dzień dobry
Robię sobie takie zadanie ze SPOJ-a (https://pl.spoj.com/problems/CALC/) i ciągle wyskakuje "błędna odpowiedź" przy sprawdzaniu.
Próbowałem różnych rzeczy w tym wczytywania z pliku i ciągle to samo w visual studio u mnie działa pięknie a tam "błędna odpowiedź". Jak widać również przed pisaniem tej wiadomości przeczytałem tutejszy artykuł o tych zadaniach żeby nie marnować państwa czasu, niemniej nie wiem co z tym zrobić.
P-179206
pekfos
» 2022-01-17 16:48:25
Wejście:
+ 7 9
- 0 4
* 5 6
/ 8 3
% 5 2
Wczytywanie liczby działań chyba sobie wymyśliłeś.
P-179207
Masterofironfist
Temat założony przez niniejszego użytkownika
» 2022-01-17 17:21:32
C/C++
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
   
char znak = 0;
   
int a = 0, b = 0;
   
while( cin >> znak >> a >> b )
   
{
       
       
if( znak == 42 )
           
 cout << a * b << "\n";
       
       
if( znak == 47 )
           
 cout << a / b << "\n";
       
       
if( znak == 43 )
           
 cout << a + b << "\n";
       
       
if( znak == 45 )
           
 cout << a - b << "\n";
       
       
if( znak == 37 )
           
 cout << a % b << "\n";
       
   
}
}
Ogólnie nie wiem po diabła siliłem sie na zakończenie tej pętli aby nie była nieskończona. Dobra w przyszłości będe już wiedział aby w takich przypadkach tego nie robić.
Zostawię tu to rozwiązanie może ktoś kiedyś skorzysta. I ogólnie dziękuje za odpowiedź.
P-179208
pekfos
» 2022-01-17 17:24:51
Ale ta pętla nie jest nieskończona. Warunkiem jest tu !std::cin.fail(). Gdyby była nieskończona, SPOJ by zwrócił przekroczenie limitu czasu.
P-179209
Masterofironfist
Temat założony przez niniejszego użytkownika
» 2022-01-17 17:50:51
Racja a std::cin.fail() pojawia się przy ładowaniu danych z pliku wtedy trochę jak eof() działa. Albo gdy wprowadzimy coś błędnego. np ciąg znaków.
P-179210
« 1 »
  Strona 1 z 1