AIUTO ESERCIZIO DI PROGRAMMAZIONE (C)

di Anonimizzato12271 il
8 risposte
Ho trovato questo esercizio e faccio vedere come l'ho risolto io, ma non so.

#include <stdio.h>
#include <math.h>

int main(int argc, const char * argv[])
{
    int i,j,a,b;
    for(i=4, b=0; i>=-4, b<=16; i--,b+=2)
    {
        for(j=1; j<=sqrt(i*i); j++)
            printf(" 0 ");
        if(b>8) {
                    for(a=16; a>=b; a--)
                              printf(" 1 ");
                    printf("\n");
                   }
        else{
                for(a=0; a<=b; a++)
                       printf(" 1 ");
               printf("\n");
            }

        
    }
  
    return 0;
}
ok grazie in anticipo a chi risponderà.
Allegati:
questa è la foto del testo dell'esercizio.
questa è la foto del testo dell'esercizio.

8 Risposte

  • "Ma non so" che vuol dire?

    Non puoi essere un po' più specifico?
  • Vorrei sapere come lo risolveresti tu
  • Io lo risolverei così :
    
    #include <stdio.h>
    #include <math.h>
    
    #define MAX_VERT 9
    
    int main()
    {
        int i,j, k=1;
        for(i=0;i<MAX_VERT;i++)
        {
            for(j=0;j<k; j++)
            {
                printf("1");
            }
            printf("\n");
            if(i < MAX_VERT/2)
                k += 2;
            else
                k -= 2;
        }
        return 0;
    }
    
  • Ma non è solo metà del rombo?
  • Se conti bene gli uno no.
    Sembra metà solo per la rappresentazione grafica
  • Eh va be non è un rombo
  • Se è tutto un problema grafico, puoi risolverlo così:
    
    #include <stdio.h>
    #include <math.h>
    
    #define MAX_VERT 9
    
    int main(int argc, const char * argv[])
    {
        int i,j,l,m=4, k=1;
        for(i=0;i<MAX_VERT;i++)
        {
            for(l=0;l<m;l++)
            {
                printf(" ");
            }
            for(j=0;j<k; j++)
            {
                printf("1");
            }
            printf("\n");
            if(i < MAX_VERT/2)
            {
                k += 2;
                m--;
            } else
            {
                k -= 2;
                m++;
            }
        }
        return 0;
    }
    
  • Ok grazie mille
Devi accedere o registrarti per scrivere nel forum
8 risposte