Curso de Programación en C/Prog78

De WikiCabal
Saltar a: navegación, buscar

Prog78

#include <stdio.h>

#define COLS 4

int sum2d( int ar[][COLS], int filas );
int sum( int ar[], int n );

int main(void)
{
   int * pt1,
       (*pt2)[COLS],
       total1,
       total2,
       total3;

   pt1 = (int [2]) {10, 20};  // compound literales
   pt2 = (int [2][COLS]) { {1,2,3,-9}, {4,5,6,-8} };

   total1 = sum( pt1, 2 );
   total2 = sum2d( pt2, 2 );
   total3 = sum( (int []) {4,4,4,5,5,5}, 6 );
   printf( "total1 = %d\n", total1 );
   printf( "total2 = %d\n", total2 );
   printf( "total3 = %d\n", total3 );

   return 0;
}

int sum( int ar[], int n )
{
  int i;
  int total = 0;

  for( i = 0; i < n; i++)
    total += ar[i];

  return total;
}

int sum2d( int ar[][COLS], int filas )
{
  int r;
  int c;
  int tot = 0;

  for( r = 0; r < filas; r++ )
    for( c = 0; c < COLS; c++ )
      tot += ar[r][c];

  return tot;
}

Resultado

[rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog78 Prog78.c
[rrc@Pridd CClase]$ ./Prog78
total1 = 30
total2 = 4
total3 = 27
[rrc@Pridd CClase]$ 

=== Explicación ===