Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- char* input_string()
- {
- getchar(); //on vide le buffer
- int n = 0;
- char *c = (char*) malloc(1);
- char saisie = getchar();
- while(saisie != '\n')
- {
- c[n] = saisie;
- saisie = getchar();
- n++;
- c = (char*) realloc(c, n+1);
- }
- c[n] = '\0';
- return c;
- }
- void ecrire_vecteurs(int n, int m, char* filename)
- {
- FILE *file = fopen(filename, "w");
- int i,j;
- float element;
- for(i=0;i<m;i++)
- {
- for(j=0;j<n;j++)
- {
- printf("Entrer l'element %d du vecteur %d\n", j, i);
- scanf("%f", &element);
- fprintf(file, "%.3f ", element);
- }
- fprintf(file, "\n");
- }
- fclose(file);
- }
- void addition_vecteurs(int n, int m, char* filename)
- {
- FILE *file = fopen(filename, "r+");
- float **vecteurs = (float**) malloc((m+1)*sizeof(float*));
- int i,j,k;
- //Lecture des vecteurs
- for(i=0;i<m;i++)
- {
- vecteurs[i] = (float*) malloc(n*sizeof(float));
- for(j=0;j<n;j++)
- {
- fscanf(file, "%f", &vecteurs[i][j]);
- }
- }
- fclose(file);
- file = fopen(filename, "a");
- int pos = 0;
- //Addition des vecteurs
- vecteurs[m] = (float*) malloc(n*sizeof(float));
- for(i=0;i<n;i++)
- {
- vecteurs[m][pos] = 0;
- for(j=0;j<m;j++)
- {
- vecteurs[m][pos] += vecteurs[j][i];
- }
- pos++;
- }
- for(i=0;i<n;i++)
- {
- fprintf(file, "%.3f ", vecteurs[m][i]);
- }
- fclose(file);
- }
- int main(int argc, char const *argv[])
- {
- int n, m;
- printf("Combien de vecteurs voulez-vous ecrire ?\n");
- scanf("%d", &m);
- printf("Quelle est la taille de ces vecteurs ?\n");
- scanf("%d", &n);
- char* filename;
- printf("Entrer le nom du fichier (avec l'extension)\n");
- filename = input_string();
- ecrire_vecteurs(n,m,filename);
- addition_vecteurs(n,m,filename);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement