SPOJ zadanie działa dobrze na komputerze, a przy sprawdzaniu błąd "błędna odpowiedź".
Ostatnio zmodyfikowano 2022-01-17 17:50
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 #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ć. |
|
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ś. |
|
Masterofironfist Temat założony przez niniejszego użytkownika |
» 2022-01-17 17:21:32 #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ź. |
|
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. |
|
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. |
|
« 1 » |