trojkat pascala, alokacja pamieci

trojkat pascala, alokacja pamieci
mozgwieczysty
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Hej! Mam do napisania kod który wyświetli trójkąt Pascala. Jednak muszę to zrobić używając tablicy jednowymiarowej, która przechowuje tylko aktualnie wypisywany poziom. Ma wyjść coś takiego
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1 .

Na razie mam tyle:

Kopiuj
#include <stdio.h>
#include <stdlib.h>

int main() {

	int h, i,j;
	printf("podaj wysokosc trojkatu pascala\n");
	scanf("%d",&h);
	
	int *pas;
	pas = (int*) malloc(1*sizeof(int));
	pas[0] = 1;
	for(i=1; i<=h; i++) {
		pas = (int *)realloc(pas, (i)*sizeof(int));
		for(j = 0; j<i; j++) {
				
			}
	}

} 

I brak mi pomysłu jak wypełnić, tablice liczbami. Proszę o pomoc!

Westen
  • Rejestracja: dni
  • Ostatnio: dni
0

Aby użyć jednowymiarowej tablicy musisz znaleźć zależności pomiędzy poszczególnymi poziomami.

http://pl.wikipedia.org/wiki/Tr%C3%B3jk%C4%85t_Pascala <--- zwróc szczególna uwagę na animację po prawej :D

mozgwieczysty
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Rozumiem, jak działa trójkąt Pascala, animacja nie jest trudna do zrozumienia :P gdyby zadanie polegało na użyciu tablicy 2d, byłoby po sprawie. Ale, czy gdy realokuje pamięć w pętli, to czy nie muszę jej na nowo wypełniać? Skąd wtedy pobrać wartości wypisane przy wcześniejszej iteracji?

mozgwieczysty
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Ok, dzięki za podpowiedź. Już sobie poradziłam z algorytmem :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.