1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NB_LIN 2
#define NB_COL 4
#define fnameA "A.txt"
#define fnameB "B.txt"
void Somme_tab (double * a, double * b, double * c, int nl, int nc )
{
int i;
for (i=0; i<nl*nc; i++)
{/* c[i] = a[i] + b[i]; */
*c = *a + *b;
a++;
b++;
c++;
}
}
int main (void)
{
void Somme_tab (double * , double *, double *, int , int );
FILE *entreeA = fopen (fnameA, "r"); // Entrée A.txt
FILE *entreeB = fopen (fnameB, "r"); //Entrée B.txt
FILE *sortieC = fopen ("Resultat.txt" , "wt") ; //Sortie => Resultat .txt
double tabA[NB_LIN][NB_COL];
double tabB[NB_LIN][NB_COL];
double tabC[NB_LIN][NB_COL];
if (entreeA != NULL && entreeB != NULL )
{
char ligneA[50];
char ligneB[50];
int i = 0;
while (fgets(ligneA, sizeof ligneA, entreeA) != NULL &&
fgets(ligneB, sizeof ligneB, entreeB) != NULL &&
i < NB_LIN)
{
char const sep[] = "\t ";
int j = 0;
char *ap = strtok(ligneA, sep);
do
{
tabA[i][j] = strtod(ap, NULL);
//printf("tabA[%d][%d] vaut %f\n", i, j, tabA[i][j]);
ap = strtok(NULL, sep);
j++;
} while (ap != NULL && j < NB_COL);
j = 0;
char *bp = strtok(ligneB, sep);
do
{
tabB[i][j] = strtod(bp, NULL);
//printf("tabB[%d][%d] vaut %f\n", i, j, tabB[i][j]);
bp = strtok(NULL, sep);
j++;
} while (bp != NULL && j < NB_COL);
i++;
}
}
fclose (entreeA);
fclose (entreeB);
Somme_tab( (double *) tabA, (double *) tabB, (double *) tabC, NB_LIN, NB_COL);
{
int x;
for (x = 0; x < NB_LIN ; x++)
{
int y;
for (y = 0; y <NB_COL && tabA[x][y] !=0 &&tabB[x][y]!=0 ; y++)
{
printf("tabA[%d][%d] vaut %f\n", x, y, tabA[x][y]);
printf("tabB[%d][%d] vaut %f\n", x, y, tabB[x][y]);
printf("tabC[%d][%d] vaut %f\n", x, y, tabC[x][y]);
fprintf (sortieC, "%f\n", tabC[x][y] );
}
}
}
return 0;
} |
Partager