Wpisywanie wartości do tablicy za pomocą pętli

0

Cześć,
Próbuję napisać taki kod, aby użytkownik podawał wielkość tablicy i za pomocą pętli for była ona uzupełniana. W tym przypadku wartościami o 2 większymi, ale wychodzi na to, że tablica nie jest uzupełniana i wyskakują mi jakieś randomowe liczby.

int main()
{
    int j;
    int liczba;
    int i;

    printf("Podaj wielkosc tablicy: ");
    scanf("%d", &liczba);
    int tablica[liczba];

 for(i=0;i<liczba;i++)
    {
        j=2*i;
        printf("%d\n", tablica[j]);

    }
    return 0;
0
tablica[j]

Ten zapis umożliwia dostanie się do elementu z indeksem j.

Aby cokolwiek zapisać pod ten adres musisz zrobić coś takiego:

tablica[i] = 2 * i;

Zmienna j nie jest Ci potrzebna.

Pamiętaj że 1 element tablicy to indeks 0.

0
atmal napisał(a):
tablica[j]

Ten zapis umożliwia dostanie się do elementu z indeksem j.

Aby cokolwiek zapisać pod ten adres musisz zrobić coś takiego:

tablica[i] = 2 * i;

Zmienna j nie jest Ci potrzebna.

Pamiętaj że 1 element tablicy to indeks 0.

Próbuję zrobić sito Eratostenesa ale chyba nie tędy droga, bo to co zrobiłem nie jest mi potrzebne.

0

Poza tym, deklarowanie tablicy o zmiennym roxzmiarze nie jest dozwolone:

scanf("%d", &liczba);
// int tablica[liczba];
int *tablica = (int *) malloc(liczba * sizeof(int));
0

@enedil: Jest dozwolone w C99 i niektórych implementacjach C11. Źródło

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