Por qué no jaja
#include <iostream>
using namespace std;
void printWithStrings(unsigned short height, char c = '*'){
int k = height*2-1;
int p = k;
for(int i=0; i<height; i++)
cout << string(k-i, ' ') << string(i*2+1, c) << '\n';
for(int i=0; i<height; i++){
const string &&s = string(i*2+1, c);
cout << string(k/2-i, ' ') << s << string(k-i*2, ' ') << s << '\n';
}
flush(cout);
}
void print(unsigned short height, char c = '*'){
int k = height*2-1;
int p = k;
char bSpace[k],
bChar[k];
for(int i=0; i<k; i++){
bSpace[i] = ' ';
bChar[i] = c;
}
for(int i=0; i<height; i++){
cout.write(bSpace, k-i);
cout.write(bChar, i*2+1);
cout << '\n';
}
for(int i=0; i<height; i++){
cout.write(bSpace, k/2-i);
cout.write(bChar, i*2+1);
cout.write(bSpace, k-i*2);
cout.write(bChar, i*2+1);
cout << '\n';
}
flush(cout);
}
int main(){
print(5);
printWithStrings(5);
}
Una forma eficiente y otra menos eficiente xD