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; }

Rispondi quotando

