- ideone.com11 wykorzystuj nie do samego wklejania kodu i do kompiacji ale też do testowania - wklejaj do okienka stdin - input dane testowe.
- Gdybyś użya zmiennej lokalnej, zamiast globalnej[ pkt 2 by @korkirw], deklarując ją w odpowiednim miejscu [w środku pętli], miałabyś od razu AC.
Byłbym bardzo wdzięczny gdybym mógł się dowiedzieć dlaczego to nie zadziałało ?
#include
using namespace std;
int ile;
int w;
int x=0;
int main()
{
cin>>ile;
for(int i=0; i<ile; i++)
{
cin>>w;
x=0
for(int i=2; i<w; i++)
{
if(w%i==0)
{
x=1;
}
}
if(x==1)
{
cout<<"NIE" ;
}
else
{
cout<<"TAK";
}
}
return 0;
}
#include
#include
using namespace std;
int testy;
int szukanie(int m)
{
for(int n=2;n*n<=m;n++)
if(m%n==0)
return false;
}
int main()
{
cin>>testy;
int liczby[testy];
for(int i = 0;i<=testy-1;i++)
{
cin>>liczby[i];
}
for(int i = 0;i<=testy-1;i++)
{
int m = liczby[i];
if (liczby[i]!= 0 && liczby[i]%1 == 0 && liczby[i]%liczby[i] == 0 && szukanie(m)!= false && liczby[i]!= 1 && liczby[i]>0)
cout<<"Tak"<<endl;
else if(liczby[i] ==2)
cout<<"Tak"<<endl;
else
cout<<"Nie"<<endl;
}
return 0;
}
Hejka, może mi ktoś powiedzieć dlaczego SPOJ uważa ten kod za błędny?
Co się dziwić, że SPOJ uznaje go za błędny skoro dla każdej wpisanej liczby wynik brzmi “Nie”. Jak poprawisz swój kod przeczytaj co napisałem dwie wypowiedzi wcześniej.
Pomijając kwestie merytoryczne to:
- Po co sprawdzasz czy liczba jest różna od 0 skoro w specyfikacji wejścia jest, że na wejściu będą liczby od 1 wzwyż.
- Jaki sens ma sprawdzanie czy reszta z dzielenia przez 1 wynosi 0???
- Po co używasz raz liczba[i] a raz m skoro to jedno i to samo? Chyba tylko po to by zaciemnić obraz.
- Dodam jeszcze nieczytelnie wklejony kod. Dlaczego nie podałeś go jako link do ideone? Tak jest najwygodniej.
I może jeszcze Jeśli zaczynasz, przeczytaj koniecznie!
Czasami wystarczy napisać [na kolanie?] kod i od razu zadziała. Najczęściej jednak trzeba go jeszcze testować, a szczególnie, gdy dostajesz WA [błędna odpowiedź].
PS
Gdy autor zadania oczekuje TAK/NIE, to Tak/Nie jest poważnym błędem.
Jeden return false
to za mało. Return domyślny nie jest określony, więc potrzebujesz jeszcze return true.
Bo …
Linia nr 7 jest bez sensu - Wiesz jak jest sprawdzana poprawność twojego rozwiązania?
Linia 9 jest bez sensu. A co się stanie, gdy nigdy nie pojawią się liczby <= 0 lub >= 100000, [bo się nie pojawią!!]?
Linie 10 i 12 są bez sensu. Znasz tylko tyle liczb pierwszych? A 11, a 13 a 17 itd
Wg Ciebie [twojego programu] 121, 169, 289 … sa liczbami pierwszymi, a przecież nie są
121 = 11 * 11, 169 = 13 * 13 oraz 289 = 17 * 17 itd.
Poczytaj o sprawdzxaniu pierwszości w dowolnym źródle wiedzy.
A na początek proponuję Ci, zrób te 3 proste zadania ::
https://pl.spoj.com/problems/PTEST/10,
https://pl.spoj.com/problems/RNO_DOD/6,
https://pl.spoj.com/problems/POTSAM/4,
AD linia 9 - pętla nigdy się nie skończy a w efekcie błąd SIGXFSZ
Cześć,
nie potrafię znaleźć błędu, który popełniłem, a rozwiązanie jest odrzucane przez błędną odpowiedź.
Mogę prosić o sprawdzenie?
Suggested Topics
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
MBPROB01 - History version in plaintext pl.spoj.com | Zbiór zadań | 6 | 175 | Jul '24 |
FR_20_02 - Poszukiwacze skarbów - Błąd w testach? | Zbiór zadań | 1 | 96 | Apr 2 |
PP0504B - StringMerge - w języku C | Zbiór zadań | 5 | 205 | Jun '24 |
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 143 | Feb 1 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 147 | Jul '24 |