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

liczby pierwsze

Ostatnio zmodyfikowano 2011-12-20 14:09
Autor Wiadomość
ptaq
Temat założony przez niniejszego użytkownika
liczby pierwsze
» 2011-12-20 00:35:23
C/C++
#include <iostream>
#include <cmath>

bool sprawdz( int a, float p )
{
    int d = 3;
    if( a == 1 || a % 2 == 0 )
         return false;
   
    do
    {
        if( a % d == 0 )
       
             return false;
       
        d += 2;
    }
    while( d < p );
   
    return true;
   
}

int main()

{
    int t, y;
    float p;
    std::cin >> t;
    int a[ t ];
   
    int i = 0;
    do
    {
        std::cin >> a[ i ];
        i++;
    } while( i < t );
   
    i = 0;
    do
    {
       
        y = a[ i ];
        p = sqrt( y );
       
        if( y == 2 || y == 3 )
        {
            std::cout << "tak" << std::endl;
        }
       
        else if( sprawdz( y, p ) == true )
        {
            std::cout << "tak" << std::endl;
        }
        else if( sprawdz( y, p ) == false )
        {
            std::cout << "nie" << std::endl;
        }
        i++;
    } while( i < t );
   
    return 0;
   
}
zadanie ze strony SPOJ do wyznaczania liczb pierwszych , program działa poprawnie ale tam mi go nie akceptuja , wywala błąd wykonania ;/ co jest źle ???? ;>
P-45908
DejaVu
» 2011-12-20 07:47:24
1. Jeżeli piszesz w C++ to używaj plików nagłówkowych C++, a nie C.
2. Po to jest SPOJ byś nauczył się pisać poprawnie własne programy.
P-45911
ptaq
Temat założony przez niniejszego użytkownika
» 2011-12-20 10:41:47
ok ale nie w tym leży problem, bo dalej bledna odpowiedz. Domyśliłem sie że SPOJ jest po to bym nauczył sie pisać poprawnie programy ale z mojego punktu widzenia jest on poprawny ;p wiec pytam osób bardziej doświadczonych.
P-45919
DejaVu
» 2011-12-20 10:44:44
To program działa poprawnie ale daje błędne wyniki czy też się wywala? Bo to nie to samo.
P-45920
ptaq
Temat założony przez niniejszego użytkownika
» 2011-12-20 10:52:42
moze jeszcze sie dobrze nie obudzilem ale nie do konca rozumiem ostatniego posta :D , testowałem program i podaje prawydlowe wyniki , ale SPOJ wyswietla komunikat "błędna odpowiedz"
P-45921
DejaVu
» 2011-12-20 10:55:57
Błędna odpowiedź = złe wyniki (zły algorytm) lub źle sformatowane wyjście w stosunku do tego co jest napisane w treści (np. wielkość liter wypisywanych na wyjście może mieć znaczenie).
P-45922
ptaq
Temat założony przez niniejszego użytkownika
» 2011-12-20 11:05:02
ok ale wyniki działania mojego programu sa poprawne, skoro zły algorytm = złe wyniki , to błąd leży gdzieś indziej ;/ . Wyjscie poprwiłem i też nic nie dało.
P-45923
DejaVu
» 2011-12-20 11:14:54
Cóż... jeżeli twierdzisz, że wyniki Twojego algorytmu są poprawne to po prostu oddaj swój program w takiej postaci jakiej jest i przekonaj prowadzącego, że działa on poprawnie :) Może ktoś inny będzie się bawił w analizę Twojego programu i go poprawiał. Moja jedyna rada to zrobienie kilku testów typu:
C/C++
void sprawdzObliczenia( int iWynik, iOczekiwanyWynik )
{
    if( iWynik == iOczekiwanyWynik )
         printf( "Wynik poprawny.\n" );
    else
         printf( "Wynik bledny. Oczekiwano %d, a otrzymano %d.\n", iOczekiwanyWynik, iWynik );
   
}
//...
sprawdzObliczenia( oblicz( costam ), poprawnyWynikWpisanyZPalca );
sprawdzObliczenia( oblicz( costam ), poprawnyWynikWpisanyZPalca );
sprawdzObliczenia( oblicz( costam ), poprawnyWynikWpisanyZPalca );
sprawdzObliczenia( oblicz( costam ), poprawnyWynikWpisanyZPalca );
sprawdzObliczenia( oblicz( costam ), poprawnyWynikWpisanyZPalca );
P-45924
« 1 » 2
  Strona 1 z 2 Następna strona