Comment faire la somme de cette somme
Résolu
geekat
Messages postés
228
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un code qui permet de lire une chaîne (4 doubles) à partir d'un fichier sous forme de vecteurs, ligne par ligne, après chaque clic.
Je souhaiterais faire la somme de ces vecteurs. Comment faire dans la boucle while ou en dehors de while ?
Je parle de la ligne 72.
J'ai un code qui permet de lire une chaîne (4 doubles) à partir d'un fichier sous forme de vecteurs, ligne par ligne, après chaque clic.
Je souhaiterais faire la somme de ces vecteurs. Comment faire dans la boucle while ou en dehors de while ?
Je parle de la ligne 72.
/* Fichiers d'en-tête */ #include <stdlib.h> // allocation dynamique mémoire #include <stdio.h> // Gestion erreurs et E/S #include <math.h> // Fonctions mathématiques #include <string.h> #include <time.h> #define TAILLE_MAX 4700 // 1ère étape : Chargement du fichier IRIS DATA = OK int main() { /* Descripteur fichier */ FILE* fichier = NULL; /* Ouverture fichier */ fichier = fopen("iris_data.txt", "r+"); if (fichier != NULL) { char chaine[TAILLE_MAX] = ""; // Chaîne vide de taille TAILLE_MAX char c ; //vect : Matrice double **vect; int i,b=1; // On peut lire et écrire dans le fichier printf("Le fichier IRIS DATA est ouvert \n"); // Si je n'ai pas assez d'espace pour 150 lignes => pour les 5 colonnes aussi en conséquence if ((vect = malloc(150*sizeof(double*)))==NULL) { printf("Erreur espace"); b=0; } //sinon for(i=0;i<150;i++) { if ((vect[i] = malloc(5*sizeof(double)))==NULL) { printf("Erreur espace"); b=0; } } if (b==1) { printf("Espace alloue \n"); } i=0; while(fgets(chaine, TAILLE_MAX, fichier)!= NULL) // On lit maximum TAILLE_MAX caractères du fichier, on stocke le tout dans "chaine" { /* Ici j'ai fait quelques opérations */ /*----------------- Etape 2 : Allocation mémoire-------------------- => OK */ /* Allocation mémoire d'un tableau de 100 valeurs flottantes */ if (b==1) { sscanf(chaine, "%lf ,%lf ,%lf ,%lf", &vect[i][0], &vect[i][1], &vect[i][2], &vect[i][3]); printf("Le vecteur de donnees x%d est : %f,%f,%f,%f \n",i, vect[i][0], vect[i][1], vect[i][2], vect[i][3]); printf("***********************FIN*************************\n"); // Etape 3 : initialisation des vecteurs normalisés // Vmoy = Somme des wi des colonnes / 150 double Vmoy = 0.0; // Vmin double Vmin = Vmoy-0.002; // Vmax double Vmax = Vmoy+0.005; // Calculer Vmoy = Somme (matrice) / 150 double somme1 = 0.0; /* Ici je dois faire la somme de toutes les somme1 */ somme1 = vect[i][0]+vect[i][1]+vect[i][2]+vect[i][3]; printf("La somme est : %f \n", somme1); ; } getchar(); i++; } fclose(fichier); } else { // On affiche un message d'erreur si on veut printf("Impossible d'ouvrir le fichier iris_data.txt"); } return 0; }
A voir également:
- Comment faire la somme de cette somme
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Somme de x dans excel ✓ - Forum Excel
- SOMME SI COULEUR ✓ - Forum Excel
Oui c'est ça, la somme de toute la matrice, soit la somme de tous les vecteurs lignes.
J'ai essayé ce que t'as dit, j'ai déclaré : double somme1 = 0.0; en dehors de la boucle while. Mais j'ai les mêmes résultats, soit la somme des vecteurs un à un 0 puis 1 puis 2 ....
EDIT : en sortant de la boucle pour afficher la somme, j'ai la somme de la dernière ligne seulement.
Normal la tu n'incrémente pas mais édite la valeur.
ecris plutôt :
ou encore
naga
Merci beaucoup, ça marche !! :)
naga