Bonjour,

Je n'arrive pas a additionner une array lue a partir d'un fichier. Voici le programme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
 
# define SQUARE(x)  (x)*(x)
 
int main ( void )
{
  double filearray1 [ 14 ],
         filearray2 [ 14 ];
  int r = 0;
  FILE * fp;
  char fname [ ] = "rent2.dat";
 
  if ( ( fp = fopen ( fname, "r" ) ) == NULL ) {
    printf ( "Unable to open %s.\n", fname );
    exit ( 1 );
    }
 
  printf("\tRent\tIncome\n");
  printf("\t X\t   Y\t\t   XX\t\t    YY\t\t     XY\n");
 
  while ( fscanf ( fp, "%lf%lf\n", & filearray1 [ r ], & filearray2 [ r ]                                   )  != EOF ) {
 
   printf ( "\t%.1f\t%.1f\t\t%.2f\t%.2f\t%.2f\n",
       filearray1 [ r ], filearray2 [ r ], SQUARE(filearray1 [r]), 
       SQUARE(filearray2[r]), filearray1[r] * filearray2[r]);
 
   }
 
 printf("\t-----\t-------\t        ---------\t-------------\t-----------\n");
 printf ( "\t%d", SumArray ( filearray1, r ) );
 
 return 0;
}
 
 SumArray ( double a [ ], int n )
{
  int c;   
  int sum = 0; 
 
  for ( c = 0; c < n; c ++ )
    sum += a [ c ];
 
  return 0;
}
Le resultat
Rent Income
X Y XX YY XY
320.0 18000.0 102400.00 324000000.00 5760000.00
292.0 20000.0 85264.00 400000000.00 5840000.00
368.0 21600.0 135424.00 466560000.00 7948800.00
324.0 28400.0 104976.00 806560000.00 9201600.00
396.0 24800.0 156816.00 615040000.00 9820800.00
440.0 43600.0 193600.00 1900960000.00 19184000.00
568.0 48000.0 322624.00 2304000000.00 27264000.00
408.0 34800.0 166464.00 1211040000.00 14198400.00
500.0 34000.0 250000.00 1156000000.00 17000000.00
520.0 35600.0 270400.00 1267360000.00 18512000.00
360.0 30000.0 129600.00 900000000.00 10800000.00
572.0 56000.0 327184.00 3136000000.00 32032000.00
440.0 32000.0 193600.00 1024000000.00 14080000.00
512.0 53200.0 262144.00 2830240000.00 27238400.00
----- ------- --------- ------------- -----------
0>
Je comprend pas pourquoi ca affiche un zero a la place de 6020? Je pense bien que la fonction est correcte? est ce que c'est probleme de data type?

Merci de votre aide.