#include #include #include using namespace std; /* Vecteur unitaire */ int unitaire(const double* v, double* u, const int n){ int i, r; double s2; s2 = 0.; for (i = 0; i < n; i++) s2 += v[i]*v[i]; if (s2 == 0.){ r = 0; for (i = 0; i < n; i++) u[i] = 0.; } else{ r = 1; for (i = 0; i < n; i++) u[i] = v[i]/sqrt(s2); } return r; } int main(){ const int n1 = 3; const int n2 = 4; double *v1, *v10, *v2, *u1, *u10, *u2; int i, r; v1 = (double*)malloc(n1 * sizeof(double)); v1[0] = 1.; v1[1] = 1.; v1[2] = 1.; v10 = (double*)malloc(n1 * sizeof(double)); v10[0] = 0.; v10[1] = 0.; v10[2] = 0.; v2 = (double*)malloc(n2 * sizeof(double)); v2[0] = -3.; v2[1] = -4.; v2[2] = -5.; v2[3] = -6.; u1 = (double*)malloc(n1 * sizeof(double)); u10 = (double*)malloc(n1 * sizeof(double)); u2 = (double*)malloc(n2 * sizeof(double)); r = unitaire(v1, u1, n1); cout << r << " -- "; for (i = 0; i < n1; i++) cout << u1[i] << " "; cout << endl; r = unitaire(v10, u10, n1); cout << r << " -- "; for (i = 0; i < n1; i++) cout << u10[i] << " "; cout << endl; r = unitaire(v2, u2, n2); cout << r << " -- "; for (i = 0; i < n2; i++) cout << u2[i] << " "; cout << endl; free(v1); free(v10); free(v2); free(u1); free(u10); free(u2); return 0; }