Oppure

Loading
25/11/09 17:20
zaire90
Scusate,
nel crivello di eratostene che ho scritto:
# include <stdio.h>
# include <stdlib.h>
# include <math.h>

void leggi_x(float&);
int pt_intera(float);
typedef int vettore[10000];
void Eratostene(vettore,int);

int main(void)
{
    float x;
    int h;
    vettore p;
    
    leggi_x(x);
    h=pt_intera(x);
    Eratostene(p,h);
    
    printf("\n\n\n\n");
    system("PAUSE");
    return 0;
}

void leggi_x(float& x)
{
    printf("Scrivi un numero reale positivo x:            x = ");
    scanf("%f",&x);
    
       while ((x<1)||(x>10000))
             {
                printf("\nx deve essere positivo e minore o uguale a 10000");
                printf("\nScrivi un umero reale positivo x:            x = ");
                scanf("%f",&x);
             }
    return;
}

int pt_intera(float x)
{
    int h;
    h=(int)x;
    printf("\n\nParte intera di %f:      [%f] = %d\n\n",x,x,h);
    
    return h;
}


void Eratostene(vettore p, int h)
{
    int i, j;
    float rad;
    rad=sqrt(h);
    
    for(i=2; i<=h; i++)   // Inizializzo tutti i numeri a 1
        p[i]=1;
    
    for(i=2; i<=rad; i++)
       if (p[i]==1)
          for(j=2; j<=h; j++)   p[i*j]=0;   // Metto in 0 tutto i multipli di i
    
    printf("1  ");
    for(i=2; i<=h; i++)
       if (p[i]==1)   printf("%d  ",i);
        
    return;
}

come accidenti faccio a stampare i numeri primi in una tabella di 10 colonne?(cioè quindi ogni dieci colonne va a capo)
E più in generale come si fa a stampare in tabelle invece che tutto per righe?

Ultima modifica effettuata da zaire90 25/11/09 19:28
aaa
25/11/09 19:37
pierotofy
cplusplus.com/reference/clibrary/cstdio/printf/

La funzione printf permette la formattazione dell'output... per andare a capo ogni 10 risultati metti un contatore che ogni volta che raggiunge 10 manda un '\n' all'ouput.
Il mio blog: piero.dev