• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z zadaniem Liczby Pierwsze

0 głosów
61 wizyt
pytanie zadane 12 lipca w C i C++ przez Padomen Początkujący (260 p.)
zamknięte 13 lipca przez Padomen

Czemu SPOJ mi nie przyjmuje.

#include <iostream>

using namespace std;

int proby;

int main()
{
    cin>>proby;
    int licz[proby];

    for (int n=1;n<=proby;n++)
    {
        cin>>licz[n];
    }


    int ok[proby];

    for (int p=1;p<=proby;p++)
    {

        if (licz[p]%2==0)
        {
            ok[p]=1;
        }
        else{ok[p]=0;}
    }
    for (int p=1;p<=proby;p++)
    {

        if (ok[p]==1)continue;
        if (licz[p]%3==0)
        {
            ok[p]=1;
        }
        else{ok[p]=0;}
    }
    for (int p=1;p<=proby;p++)
    {

        if (ok[p]==1)continue;
        if (licz[p]%5==0)
        {
            ok[p]=1;
        }
        else{ok[p]=0;}
    }
    for (int p=1;p<=proby;p++)
    {

        if (ok[p]==1)continue;
        if (licz[p]%7==0)
        {
            ok[p]=1;
        }
        else{ok[p]=0;}
    }
    for (int p=1;p<=proby;p++)
    {
        if ((licz[p]==1) || (licz[p]==0) )
        {
            ok[p]=1;
        }
        else if ((licz[p]==2) || (licz[p]==3) || (licz[p]==5)|| (licz[p]==7))
        {
            ok[p]=0;
        }
    }



    for (int m=1;m<=proby;m++)
    {

        if (ok[m]==0)
        {
            cout<<"TAK"<<endl;
        }

        else if(ok[m]==1)
        {
            cout<<"NIE"<<endl;
        }

    }


    return 0;
}

 

komentarz zamknięcia: ogarnąłem o co chodzi

1 odpowiedź

0 głosów
odpowiedź 12 lipca przez k222 Nałogowiec (27,010 p.)
    cin>>proby;
    int licz[proby];
 
    for (int n=1;n<=proby;n++)
    {
        cin>>licz[n];
    }

próbowałeś uruchomić ten kod?

Problem w tym, że tablica n elementowa zawiera elementy o indeksach od 0 do n-1.
Ty tworzysz tablice o rozmiarze proby, a potem wszędzie odwołujesz się do indeksów od 1 do proby (nie uwzględniasz indeksu 0 + operujesz na nieistniejącym indeksie proby - powinien polecieć wyjątek jak to odpalisz)

komentarz 12 lipca przez Padomen Początkujący (260 p.)
mógłbyś jaśniej troche nie zrozumialem
komentarz 12 lipca przez k222 Nałogowiec (27,010 p.)

1. Po co wrzucasz kod którego nie chciało ci się nawet odpalić i spróbować czy działa?

2. Mógłbyś chociaż podać link do zadania

3. Spróbuj zamienić wszędzie:

for (int n=1;n<=proby;n++)

na:

for (int n=0;n<proby;n++)

i tak nie będzie działać poprawnie, bo sprawdzasz czy liczba jest podzielna przez 2,3,5,7 - a co jeśli będzie podzielna przez 11? ale przynajmniej się odpali (przy okazji ten kod da się uprościć tak, żeby zajmował o połowę mniej miejsca max. - możesz spróbować to zrobić jako ćwiczenie logiczne)

komentarz 12 lipca przez Padomen Początkujący (260 p.)

1.kod działa bez problemu dla przykładów które testowałem 

2.https://pl.spoj.com/problems/PRIME_T/

3.to zepsuje wtedy program bo zamiast 3 liczb jak podaje sie na poczatku bedzie wymagac 4

już lepiej zrobic

for (int n=0;n<=proby-1;n++)

 

komentarz 12 lipca przez MetGang Nałogowiec (34,380 p.)
Wyjdzie na to samo ¯\_(ツ)_/¯
komentarz 13 lipca przez Padomen Początkujący (260 p.)
@MetGang jest zmienna która może przechowywać liczby i cyfry?

Podobne pytania

0 głosów
5 odpowiedzi 213 wizyt
pytanie zadane 15 listopada 2016 w C i C++ przez szym3ns Użytkownik (850 p.)
+1 głos
2 odpowiedzi 348 wizyt
pytanie zadane 6 maja 2016 w C i C++ przez k222 Nałogowiec (27,010 p.)
0 głosów
1 odpowiedź 485 wizyt
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

65,794 zapytań

112,440 odpowiedzi

237,547 komentarzy

46,729 pasjonatów

Przeglądających: 235
Pasjonatów: 11 Gości: 224

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...