Quadrato di asterischi senza con spazio al centro

di il
4 risposte

Quadrato di asterischi senza con spazio al centro

Devo fare un programma che prende in input un int n e stampa un quadrato di lato n con il centro del quadrato vuoto. Ho provato a farlo e so che ho sbagliato, ma non capisco dove. Questo è quello che ho scritto (incollo solo la funzione, la parte nel main è solo l'inserimento di un parametro e la chiamata a funzione):
#include<stdio.h>

void quadrato_asterischi (int n){
	
	int a=0;
	while(a<n){						
		int j=0;						
		while(j<n){	
			if(j!=1 || j!=n){
				printf(" ");
			} 
			printf("*");
			j++;
			}
		if(a!=1 || a!=n){
			printf(" ");
			}
		printf("\n");
		a++;  
	}
}

4 Risposte

  • Re: Quadrato di asterischi senza con spazio al centro

    Ciao. Quando posti codice, usa il tag "code" per renderlo più leggibile. Seleziona tutto il codice e premi il pulsante "</>" in alto nell'editor.

    Per quando riguarda il problema, vedi che è molto più semplice di come l'hai fatto tu. Deve stampare lo spazio se entrambi gli indici sono diversi dagli estremi, altrimenti stampa un asterisco. Prova a tradurre questo in un solo if.
    Nota bene che se hai messo !=0 e !=n, gli indici devono andare da 1 a n, non da 0 a n-1.
    In ultimo, qui iostream non ti serve.
  • Re: Quadrato di asterischi senza con spazio al centro

    Alexv ha scritto:


    Ciao. Quando posti codice, usa il tag "code" per renderlo più leggibile. Seleziona tutto il codice e premi il pulsante "</>" in alto nell'editor.

    Per quando riguarda il problema, vedi che è molto più semplice di come l'hai fatto tu. Deve stampare lo spazio se entrambi gli indici sono diversi dagli estremi, altrimenti stampa un asterisco. Prova a tradurre questo in un solo if.
    Nota bene che se hai messo !=0 e !=n, gli indici devono andare da 1 a n, non da 0 a n-1.
    In ultimo, qui iostream non ti serve.
    Grazie per la dritta sul "code", ho modificato per rendere leggibile (è la mia prima volta qui ahah). Scrivendoti una risposta ho notato che effettivamente basta fare solo un controllo su righe o colonne, quindi basta solo un if, questo intendi giusto? Per il resto, avevo già messo gli indici che andassero da 1 a n. E in fine, detto onestamente, non so cosa sia iostream ahah, ho visto su internet che si tratta di c++(?), e ancora non lo faccio, ora infatti sto programmando in C (correggimi se sbaglio). In ogni caso grazie per la mano .
  • Re: Quadrato di asterischi senza con spazio al centro

    In C usi stdio.h, contiene le funzioni printf e scanf. Se non ti da errore su iostream, vuol dire che stai compilando in C++, che in buona parte è compatibile con il C (non vale il contrario).
    Sì, basta un solo if.
  • Re: Quadrato di asterischi senza con spazio al centro

    Alexv ha scritto:


    In C usi stdio.h, contiene le funzioni printf e scanf. Se non ti da errore su iostream, vuol dire che stai compilando in C++, che in buona parte è compatibile con il C (non vale il contrario).
    Sì, basta un solo if.
    Capito capito, grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte