Jak stworzyć dwuwymiarową tablicę NxN, ale żeby była trójkątna?

0

Jak stworzyć 2 wymiarową tablicę NxN ale, żeby była trójkątna?

Czy to o coś takiego chodzi:

int i,j;
    int m = n;
    int **tab = malloc(sizeof(int*)*n);
    for(i=0; i<n; i++)
    {
        tab[i] = malloc(sizeof(int*)*m);
        m = m - 1;
    }

?

0

Może tak:
http://ideone.com/snRIB3

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

void triarr_fill(unsigned rows, int **array) {
	unsigned i,j;
	for(i=0;i<rows;i++)
		for(j=0;j<i+1;j++)
			array[i][j]=i-j;
}

void triarr_print(unsigned rows, int **array) {
	unsigned i,j;
	for(i=0;i<rows;i++) {
		for(j=0;j<i+1;j++)
			printf("%d ",array[i][j]);
		printf("\n");
	}
}

int main(void) {
	unsigned i, nrows;
	scanf("%u",&nrows);
	int **triarray = malloc(sizeof(int*)*nrows);
	for(i=0; i<nrows; i++)
		triarray[i] = malloc(sizeof(int)*(i+1));
	triarr_fill(nrows,triarray);
	triarr_print(nrows,triarray);
	for (i=0; i<nrows; i++) free(triarray[i]);
	free(triarray);
	return 0;
}

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