Dato un numero inserito sulla riga di comando stampare la tavola numerica di tutti i numeri da 1 a quel numero. Il numero deve essere compreso tra 1 e 1000 e devono essere visualizzati a video il quadrato, il cubo, la radice quadrata e cubica di tutti i numeri ben incolonnati

codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void quad_cub(int x, int *qptr, int *cptr)
{
*qptr=x*x;
*cptr=x*x*x;
}

void rad_quad_cub (int y, double *rqptr, double *rcptr )
{
const float esp = 1/3;
*rqptr=sqrt(y);
*rcptr=pow(y, esp);
}



int main(int argc, char *argv[])
{
int lim,i;
double rad_quad,rad_cub;
int quad,cub;

/*controllo se sulla linea di comando sono stati inseriti il
nome del programma e il valore limite fino al quale calcolare
le operazioni richieste*/
if (argc!=2)
{
fprintf(stderr, "errore-non hai inserito il limite!\n");
exit(1);

}

if (sscanf(argv[2],"%i", &lim)!=1)
{
fprintf(stderr,"errore-non hai inserito un numero!");
exit(2);
}

/*controllo se il limite inserito è concorde con la traccia del problema*/
if ((argv[2]<1)||(argv[2]>1000))
{
fprintf(stderr, "errore-limite inserito non concorde con la traccia del problema\n");
exit(3);
}

for (i=1;i<=lim;i++)
{
quad_cub(i,&quad,&cub);
rad_quad_cub(i,&rad_quad,&rad_cub);
printf("\t%5d\t%8d\t%10d\t%8.6f\t%8.6f",i,quad,cub,rad_quad,rad_cub);
}

return 0;
}