es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué hace que # se vaya a la siguiente línea en lugar de continuar en la misma línea?

No estoy seguro por qué # se coloca en la línea incorrecta cuando se supone que continúa después de ‘u’

# incluir

# definir LEN 5

int inputNumber() {
int size;
printf(“Tamaño de entrada: “);
scanf(“%d”,&size);
printf(“===\nEl tamaño del triángulo es %d\n===\n”,size);
return size;
}

void printTriangle(int size, char ch[]) {
for(int i = 0; i < size; i++)
{
for(int j = 0; j <= i; j++)
{
if(j <= LEN) {
printf(“%c “,ch[j]);
} else {
printf(“# “);
}
}
printf(“\n”);
}
}

int main() {
char arrchar[LEN] = {‘a’,’e’,’i’,’o’,’u’};
int number;
number = inputNumber();
printTriangle(number,arr
char);
return 0;
}

Solía ​​preguntar sobre este mismo código antes, pero quiero intentar usar if-else en lugar de ?: porque aún no he aprendido eso en clase, así que quiero saber si es posible usar cosas básicas como if-else.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que la segunda instrucción if dentro del ciclo interno de la función printTriangle no tiene una instrucción else. Esto significa que cuando j es menor o igual que LEN, la primera instrucción if imprime el carácter en ch[j] y luego la segunda instrucción if también imprime #. Para solucionar esto, puedes agregar una instrucción else que no imprima nada cuando j sea menor o igual que LEN:

    void printTriangle(int size, char ch[]) {
        for(int i = 0; i < size; i++)
        {
            for(int j = 0; j <= i; j++)
            {
                if(j <= LEN)
                    printf("%c ",ch[j]);
                else
                    printf("# ");
            }
            printf("\n");
        }
    }
    

    Esto imprimirá los caracteres de ch hasta el quinto índice, y luego imprimirá # para todas las iteraciones posteriores de j.

Comments are closed.