Ayuda con un simple ejercicio de progtwigción en C

Soy nuevo en la progtwigción de C, tengo un poco de dificultad con un ejercicio de progtwigción, estoy seguro de que esto es simple para cualquiera que sepa C, desafortunadamente, tienes que seguir las reglas del ejercicio.

Aquí está el ejercicio:

Haga que un progtwig solicite al usuario que ingrese una letra mayúscula. Usa bucles nesteds para producir un patrón piramidal como este:

A ABA ABCBA ABCDCBA ABCDEDCBA 

El patrón debe extenderse al carácter introducido. Por ejemplo, el patrón anterior resultaría de un valor de entrada de E. Sugerencia: use un bucle externo para manejar las filas. Use tres bucles internos en una fila, uno para manejar los espacios, uno para imprimir letras en orden ascendente y otro para imprimir letras en orden descendente.

Así que llegué hasta aquí:

 #include  int main(void) { int rows; int spaces; char asc; char desc; char input; printf("Please enter an uppercase letter: "); scanf("%c", &input); for (rows = 'A'; rows  rows; spaces--) { printf(" "); } for (asc = 'A'; asc = rows; desc--) { printf("%c", desc); } printf("\n"); } return 0; } 

Estás muy cerca:

 for (desc = asc - 2; desc >= 'A'; desc--) { 

Tenga en cuenta que después del segundo bucle interno, asc es rows + 1 . Entonces estás inicializando desc a rows - 1 . Debería poder ver por qué >= rows son incorrectas y no generarán iteraciones.

La condición correcta es simplemente >= 'A' .

 #include  #include  #define ROW 6 int main() { char let = '\0', ch; int row; scanf("%c", &let); for (row = 0; row <= ROW; row++) { for (ch = let; let > (ch + row); --ch) { for (ch = let; let < (ch + row); ++ch) { printf("%c", ch); } // ch = let; printf("\n"); } } return 0; } 

Cualquier comentario o corrección sería muy apreciado. También soy un nuevo // alumno;)