Hace relativamente poco contesté a otro algoritmo que proponías y era bastante parecido... No se si esto es lo que buscabas pero aqui te dejo el código de un ejemplo:
#include<windows.h>
#include<stdio.h>
void main()
{
int num,aux,i,j;
do{
system("Cls");
printf("\n\tIntroduce numero de filas (40 maximo para visualizar OK): ");
scanf("%d",&num);
if(num<=0){
printf("\nEl numero ha de ser mayor de 0!!!");
Sleep(2000);}
if(num>40){
printf("\nPuede haber problemas en la visualizacion debido al limite de caracteres");
Sleep(2000);}
}while(num<=0);
aux = num;
for(i=1;i<=num;i++){
for(j=0;j<aux;j++)
printf(" ");
for(j=2;j<=i*2;j++)
printf("*");
printf("\n");
aux--;}
getchar();
}
Con la función "gotoxy" de la librería "conio.h" se realizaría de manera más adecuada... pero el compilador de microsoft no tiene esa función implementada en la misma... (maldito Bill). En fin un saludo