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

Sito Eratostenesa z tablicą.

Ostatnio zmodyfikowano 2016-07-27 19:42
Autor Wiadomość
NiNJAxFREEZu
Temat założony przez niniejszego użytkownika
Sito Eratostenesa z tablicą.
» 2016-07-27 14:01:06
Witam. Mam problem z moim programem generującym liczby pierwsze do 150.

C/C++
#include <stdio.h>

int main( void )
{
    int P[ 150 ], i, j;
    for( i = 0; i <= 150; ++i )
         P[ i ] = 0;
   
    for( i = 2; i <= 150; ++i )
    {
        if( P[ i ] == 0 )
             printf( "%i\n", i );
       
        for( j = 1; i * j <= 150; ++j )
             P[ i * j ] = 1;
       
    }
   
    return 0;
}

Chodzi o ostatnią pętle for. Podczas uruchomienia programu, program nie wychodzi z tej pętli.
Czy ktoś może mi powiedzieć, to jest przyczyną tego problemu?
P-150301
mateczek
» 2016-07-27 19:01:21
C/C++
for( i = 0; i < 150; ++i )
//w pętlach wychodzisz poza zakres!!!
P-150320
NiNJAxFREEZu
Temat założony przez niniejszego użytkownika
» 2016-07-27 19:31:09
Zmiana warunku ostatniej pętli for na "<=149" naprawiła problem. Zamykam temat.
P-150321
mateczek
» 2016-07-27 19:42:37
Musisz zmienić warunek we wszystkich pętlach!!! Bo inaczej odwołujesz się poza tablicę!!!
C/C++
#include<iostream>
using namespace std;
int main( void )
{
    int P[ 150 ], i = 90;
    cout << P[ 150 ] << " dlaczego?? " << endl;
}
P-150322
« 1 »
  Strona 1 z 1