/ / Creazione di una funzione ricorsiva per la stampa di stelle - c

Creazione di una funzione ricorsiva per la stampa di stelle - c

Questa è una funzione ricorsiva creata da me per la stampa di stelle triangolari. Si è verificato un problema, il loop funziona all'infinito. Aiutami.

#include<stdio.h>
int n;
void star(int x,int y)
{
if(x>y) {
printf("*");
star(x,++y);
} else if(x<=n) {
// x <= y and x <= n
printf("*n");
star(++x,0);
}
}
void main()
{
printf("Enter the number of lines to be printed: ");
scanf("%d",&n);
star(0,0);
}

risposte:

0 per risposta № 1

Ti manca una guardia e finisci il ciclo. Chiami la stella (0,0) e funzionerà indefinitamente ...

Devi passare l'argomento ricevuto in scanf alla funzione ed eseguire un ciclo for per eseguire il numero di righe o stelle che hai passato al metodo.