SPOJ - Samolot - błąd kompilacji

SPOJ - Samolot - błąd kompilacji
Filip Peszke
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0

Cześć,

Próbuję zrobić rozwiązać problem z platformy SPOJ o nazwie samolot (POTSAM) - https://www.spoj.com/problems/POTSAM/. Pomimo poprawnego działania programu (a tak mi się przynajmniej wydaje), serwis podaje informację o błędzie kompilacji. Czy potrzebuję jakiejś dodatkowej funkcji do wpisywania wartości po spacji?

Kopiuj
#include <iostream>

using namespace std;

int main()
{
    int n1,k1,n2,k2;

    std::cin >> n1 >> k1 >> n2 >> k2;

    if (1<=n1,k1,n2,k2<=1000)
    cout <<n1*k1+n2*k2<< endl;
    else

    return 0;
}
edytowany 1x, ostatnio: kq
Patryk27
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
2
  1. Taka składnia porównania nie istnieje w C++ - musiałbyś każdy warunek napisać wprost: 1 <= n1 && n1 <= 1000 && 1 <= k1 && k1 <= 1000 && ....
  2. Wszystkie dane wejściowe są zgodnie z opisem zadania, stąd porównywanie ich nie ma żadnego sensu; te informacje widnieją tam wyłącznie po to, abyś mógł dobrać odpowiednie typy danych (uint8 vs uint16 itd.). Walidacja danych wejściowych nie jest częścią zadań na SPOJu.

edytowany 4x, ostatnio: Patryk27
Filip Peszke
No dobra, dobrze wiedzieć na przyszłość, już wcześniej akceptowało rozwiązania bez podawania warunków. Jednak nawet w mojej pierwotnej wersji, bez początkowych warunków, kompilacja nie zakończyła się powodzeniem.
Patryk27
Pokaż w takim razie tę pierwotną wersję :-)
enedil
Składnia porównywania nie istnieje, ale jak na moje oko, program jest składniowo poprawny, dlatego nie rozumiem skąd błąd kompilacji.
Filip Peszke
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0
Patryk27 napisał(a):
  1. Taka składnia porównania nie istnieje w C++ - musiałbyś każdy warunek napisać wprost: 1 <= n1 && n1 <= 1000 && 1 <= k1 && k1 <= 1000 && ....
  1. Wszystkie dane wejściowe są zgodnie z opisem zadania, stąd porównywanie ich nie ma żadnego sensu; te informacje widnieją tam wyłącznie po to, abyś mógł dobrać odpowiednie typy danych (uint8 vs uint16 itd.). Walidacja danych wejściowych nie jest częścią zadań na SPOJu.
Patryk27 napisał(a):
  1. Taka składnia porównania nie istnieje w C++ - musiałbyś każdy warunek napisać wprost: 1 <= n1 && n1 <= 1000 && 1 <= k1 && k1 <= 1000 && ....
  1. Wszystkie dane wejściowe są zgodnie z opisem zadania, stąd porównywanie ich nie ma żadnego sensu; te informacje widnieją tam wyłącznie po to, abyś mógł dobrać odpowiednie typy danych (uint8 vs uint16 itd.). Walidacja danych wejściowych nie jest częścią zadań na SPOJu.

Pierwotna wersja mojego programu:

Kopiuj
#include <iostream>

using namespace std;

int main()
{
    int n1,k1,n2,k2;

    cin >> n1 >> k1 >> n2 >> k2;
    cout <<n1*k1+n2*k2<< endl;

    return 0;
}
edytowany 2x, ostatnio: Filip Peszke
enedil
Z tego co pamiętam, spoj także chyba podawał konkretny błąd kompilacji, więc mógłbyś go wkleić
Patryk27
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
2

Podany przez Ciebie program kompiluje się oraz działa prawidłowo: https://ideone.com/HvSmsx.


edytowany 1x, ostatnio: Patryk27
Filip Peszke
Dobra, przeszło. Musiały zaistnieć jakieś problemy z połączeniem. Dziękuję bardzo za przydatną informację odnośnie warunków, przyda mi się w przyszłości :)
Althorion
Moderator C/C++
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 21 godzin
  • Postów:1607
1

🤷 U mnie działa.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.