Niestety, program wyświetla silnie tylko dwóch pierwszych liczb, a potem się zatrzymuje.
To w końcu się kompiluje czy nie?
.
Ale mniejsze o to, taki kod jest niedozwolony:
int liczba[d];
Musisz dynamicznie zaalokować tablicę:
int* liczba = new int [d];
Tak przydzielasz pamięć na stercie, poprzednio robiłeś to na stosie (i wartość musiała być znana podczas kompilacji)
Po drugie korzystasz tu z niezainicjalizowanej zmiennej d, musisz wczytać tą zmienną przed jej wykorzystaniem.