Io l'ho sviluppato così, mi rendo conto che è una mezza follia ma non ho ancora trovato strategie più rapide, per lo meno arrivo fino a un certo punto e mi ricredo...
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n, i, j;
printf("inserisci numero di cornici: ");
scanf("%d", &n);
if (n == 0) fputs("+\n", stdout);
else {
for (i = 0; i < n * 2 + 1; i++) {
printf("\n");
if (i == 0){ //riga 1
fputs("+", stdout);
for (int x = 0; x < n * 2 - 1; x++) fputs("-", stdout);
fputs("+", stdout);
}
if(i<n){ //righe prima della metà
for (int v = 0; v < i; v++) fputs("|", stdout);
fputs("+", stdout);
for (int b = 0; b < n * 2 - i; b++) fputs("-", stdout);
fputs("+", stdout);
for (int c = 0; c < i; c++) fputs("|", stdout);
}
if (i = n){ //riga a metà
}
if { //riga dopo la metà
}
if (i == n * 2 + 1){ //ultima riga
fputs("+", stdout);
for (int x = 0; x < n * 2 - 1; x++) fputs("-", stdout);
fputs("+", stdout);
}
}
}
getchar();
getchar();
}