/*************************** **** auteur: Anonyme ******* ***************************/ #include #include #include #include #include #define NMAX 1000 void gen_aleat(double v[], int n); void print_array(double v[], int n); void calcul_modules(double v[], int n, double *mod1, double *mod2, double *modin); int main() { char rep; double tab[NMAX], mod1, mod2, modin; int nbElements, c, verif; srand(time(NULL)); do { do { printf("Entrez le nombre d'elements du vecteur ( compris entre 1 et %d):", NMAX); verif = scanf("%d", &nbElements); while (( c = getchar()) != '\n' && c != EOF ); }while ( ! verif || nbElements < 1 || nbElements > NMAX ); gen_aleat( tab, nbElements ); print_array( tab, nbElements ); calcul_modules( tab, nbElements, &mod1, &mod2, &modin); printf("\nmodule 1 = %7.1f; module 2 = %7.1f; module infini = %7.1f\n", mod1, mod2, modin); printf("Recommencer? (o/n)"); scanf("%c", &rep); while (( c = getchar()) != '\n' && c != EOF ); }while ( tolower(rep) == 'o' ); return 0; } void gen_aleat(double v[], int n) { int i = 0; for ( i; i < n; i++ ) { v[i] = rand() - rand(); } } void print_array(double v[], int n) { int i = 0; for ( i; i < n; i++ ) { printf("\n%7f\n", v[i]); } } void calcul_modules(double v[], int n, double *mod1, double *mod2, double *modin) { *mod1 = 0; *mod2 = 0; *modin = 0; int i = 0; for ( i; i < n; i++ ) { if ( v[i] >= 0 ) { *mod1 += v[i]; if ( *modin < v[i] ) { *modin = v[i]; } } else { *mod1 += -v[i]; if ( *modin < -v[i] ) { *modin = -v[i]; } } *mod2 += v[i] * v[i]; } *mod2 = sqrt(*mod2); }