Problem z boolean'en

0

Hej, może ktoś mi wyjaśnić, dlaczego w 12 linii kodu wywala mi błąd?

 #include <stdio.h>

int main(void)
{
    int i, j;
    const int n = 100;
    _Bool nrtab[n+1];


    for(i=2; i*i<=n; i++)
    {
        if (nrtab[i] == true)
            continue;
        for (j=2*i; j<=n; j+=i)
            nrtab[j] = true;
    }

    printf("Liczby pierwsze z przedziału od 2 do n to:\n");

    for (i=2; i<=n; i++)
        if (nrtab[i] == false)
            printf("%d", i);

    system("pause");

}

Chodzi dokładnie o tą linijkę:

  if (nrtab[i] == true) 
1

w języku c nie ma takiego słowa kluczowego jak "true", zamień to na "1" co jest równoznaczne z prawdą.

1

Bo w C nie ma typu bool więc odpowiednio nie ma true/false.

Zrób zamiany:
if(nrtab[i] == true) => if(nrtab[i])
nrtab[j] = true; => nrtab[j] = 1
if (nrtab[i] == false) => if (!nrtab[i])
Poza tym brakuje ci inicjalizacji nrtab.

1 użytkowników online, w tym zalogowanych: 0, gości: 1