All pastes #734202 Raw Edit

Someone

public text v1 · immutable
·published 2007-10-12 14:09 UTC
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);
}