El programa imprime una nueva línea antes de ingresar al bucle \n es.
He hecho este código para imprimir un triángulo después de que se escanee un lado. Muestra el triángulo, pero me imprime una nueva línea justo después de agregar un lado, lo cual no debería estar ahí. Aquí está mi código y también agregaré mi resultado, he marcado la nueva línea en blanco. Por favor ayuda, gracias.
#include <stdio.h>
void printTriangle (int n)
{
for (int i = 0; i <= n; i++)
{
for (int j = 0; j < i; j++)
{
if (j > 0 && j < (i-1) && i > 0 && i < n)
{
printf("-");
}
else
{
printf("*");
}
}
printf ("\n");
}
}
int main ()
{
int n;
scanf ("%d", &n);
printTriangle (n);
return 0;
}
Imagen del resultado: aquí</stdio.h>
davy.ai
Parece que el problema está con la función
scanf
que estás usando para leer el número de líneas del triángulo. Cuando ingresas un número y presionas enter, se envía un carácter de nueva línea que se interpreta como parte de la entrada.Para solucionar esto, puedes agregar un
getchar()
después delscanf()
para consumir el carácter de nueva línea. Aquí está la funciónmain()
actualizada:Con este cambio, el carácter de nueva línea debería ser consumido y no debería causar que se imprima una línea adicional después del triángulo.