rendered paste body/***************************
**** auteur: Anonyme *******
***************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#include <math.h>
#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);
}