Curso de Programación en C/Prog76

De WikiCabal
Ir a la navegación Ir a la búsqueda

Prog76

 1 #include <stdio.h>
 2 
 3 #define FILAS 3
 4 #define COLS 4
 5 
 6 void sum_filas( int ar[][COLS], int filas );
 7 void sum_cols( int [][COLS], int );
 8 int  sum2d( int (*ar)[COLS], int filas );
 9 
10 int main( void )
11 {
12   int junk[FILAS][COLS] = {
13                             {2,4,6,8},
14                             {3,5,7,9},
15                             {12,10,8,6}
16                           };
17 
18   sum_filas( junk, FILAS );
19   sum_cols( junk, FILAS );
20   printf( "Sum de todos los elementos = %d\n", sum2d( junk, FILAS ) );
21 
22   return 0;
23 }
24 
25 void sum_filas( int ar[][COLS], int filas )
26 {
27   int c,
28       r,
29       tot;
30 
31   for( r = 0; r < filas; r++ )
32   {
33     tot = 0;
34     for( c = 0; c < COLS; c++ )
35       tot += ar[r][c];
36     printf( "fila %d: sum = %d\n", r, tot );
37   }
38 }
39 
40 void sum_cols( int ar[][COLS], int filas )
41 {
42   int c,
43       r,
44       tot;
45 
46   for( c = 0; c < COLS; c++ )
47   {
48     tot = 0;
49     for( r = 0; r < filas; r++ )
50       tot += ar[r][c];
51     printf( "col %d: sum = %d\n", c, tot );
52   }
53 }
54 
55 int sum2d( int ar[][COLS], int filas )
56 {
57   int c,
58       r,
59       tot = 0;
60 
61   for( r = 0; r < filas; r++ )
62     for( c = 0; c < COLS; c++ )
63       tot += ar[r][c];
64 
65   return tot;
66 }

Resultado

[rrc@Pridd ~]$ gcc -Wall -o Prog76 Prog76.c
[rrc@Pridd ~]$ ./Prog76
fila 0: sum = 20
fila 1: sum = 24
fila 2: sum = 36
col 0: sum = 17
col 1: sum = 19
col 2: sum = 21
col 3: sum = 23
Sum de todos los elementos = 80
[rrc@Pridd ~]$ 

Explicación