Curso de Programación en C/Prog77
Ir a la navegación
Ir a la búsqueda
Prog77
1 #include <stdio.h>
2
3 #define FILAS 3
4 #define COLS 4
5
6 int sum2d( int rows, int cols, int ar[rows][cols] );
7
8 int main( void )
9 {
10 int cs = 10,
11 i,
12 j,
13 junk[FILAS][COLS] = {
14 {2,4,6,8},
15 {3,5,7,9},
16 {12,10,8,6}
17 },
18 masjunk[FILAS-1][COLS+2] = {
19 {20,30,40,50,60,70},
20 {5,6,7,8,9,10}
21 },
22 rs = 3,
23 varr[rs][cs];
24
25 for( i = 0; i < rs; i++ )
26 for( j = 0; j < cs; j++ )
27 varr[i][j] = i * j + j;
28
29 printf( "3x5 arreglo\n" );
30 printf( "Sum de todos los elementos = %d\n",
31 sum2d( FILAS, COLS, junk ) );
32
33 printf( "2x6 arreglo\n" );
34 printf( "Sum de todos los elementos = %d\n",
35 sum2d( FILAS-1, COLS+2, masjunk ) );
36
37 printf( "3x10 VLA\n" );
38 printf( "Sum de todos los elementos = %d\n",
39 sum2d( rs, cs, varr ) );
40
41 return 0;
42 }
43
44 int sum2d( int rows, int cols, int ar[rows][cols] )
45 {
46 int r;
47 int c;
48 int tot = 0;
49
50 for( r = 0; r < rows; r++ )
51 for( c = 0; c < cols; c++ )
52 tot += ar[r][c];
53
54 return tot;
55 }
Resultado
[rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog77 Prog77.c [rrc@Pridd CClase]$ ./Prog77 3x5 arreglo Sum de todos los elementos = 80 2x6 arreglo Sum de todos los elementos = 315 3x10 VLA Sum de todos los elementos = 270 [rrc@Pridd CClase]$ === Explicación ===
La asignación de los elementos del arreglo varr = [rs][cs] queda así:
for( i = 0; i < rs; i++ )
for( j = 0; j < cs; j++ ) varr[i][j] = i * j + j;
igual a:
varr = [3][10] = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 },{ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 } }