Hola Ogramar.
Un gusto conocerte, unas cosas para aclarar, el primer enlace es un post que yo mismo di de alta por mis dudas en cuanto a la recursión que si bien todavía persisten, tengo algunos conceptos bastante claro gracias a la ayuda de Alex, me gustó muchísimo la idea de sumar las columnas de una matriz con recursividad, solo que no sé si me voy a animar siquiera a intentarlo, veremos.-
En cuanto a la manera que yo preguntaba encontré un blog con el título
“Usar un array de una dimensión como si fuera de dos” me puse a practicar y parece que lo logré, a continuación dejo el código que está recién finalizado, acepto sugerencias para mejorarlo.-
/*
Usar un array de una dimensión como si fuera de dos
El programa suma todas las columnas del array con un sólo bucle for.
*/
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define FILAS 5
#define COLUMNAS 10
void llenar(int arreglo[], int elementos);
void mostrar(int arreglo[], int elementos);
void sumar(int arreglo[], int elementos);
int main(int argc,char **argv){
int elementos = FILAS * COLUMNAS, arreglo[elementos];
llenar(arreglo, elementos);
mostrar(arreglo, elementos);
sumar(arreglo, elementos);
return EXIT_SUCCESS;
}
void llenar(int arreglo[], int elementos){
unsigned int hora = time(NULL), i;
srand(hora);
for(i=0; i < elementos; i++){
arreglo[i] = rand()% 100;;
}
}
void mostrar(int arreglo[], int elementos){
int i;
for(i=0; i < elementos; i++){
(i%COLUMNAS == 0) ? printf("\n") : printf("");
printf(" %3d ", arreglo[i]);
}
}
void sumar(int arreglo[], int elementos){
int fila=0, columna=0, i, resultado=0;
printf("\n---------------------------------\n");
for(i=0; i < elementos; i++){
resultado += arreglo[fila+columna];
columna += COLUMNAS;
if((i+1) % FILAS == 0){
printf(" %d ", resultado);
resultado = 0;
fila++; columna=0;
}
}
}
Saludos.
Daniel