Open ssommerr opened 2 months ago
perdón en esta parte me ffalto agregar el if para que si es el num del medio en una matriz 5x5 x ej, no se sume 2 veces: suma+=matriz[j][posicionfija]; if ((dim-1-posicionfija]!=posicionfija) suma+=matriz[j][dim-1-posicionfija];
Fijate de probarlo con este programa, y en todo caso mandá el código completo, la versión final, así lo vemos
#include <assert.h>
#include <stdio.h>
int main(void)
{
const int mat[M][M] = {
{1, 1, 1, 1, 1, 1},
{1, 2, 2, 2, 2, 1},
{1, 2, 3, 3, 2, 1},
{1, 2, 3, 3, 2, 1},
{1, 2, 2, 2, 2, 1},
{1, 1, 1, 1, 1, 1}
};
int borders[M / 2];
sum_borders(mat, borders);
for (int i = 0; i < M / 2; i++)
{
printf("Border %d: %d\n", i, borders[i]);
}
assert(bodes[0]==20;
assert(bodes[1]==24;
assert(bodes[2]==12;
return 0;
}
Lo que sí te anticipo es que la función vueltasAdar no tendría que existir, deberías poder calcularlo sin hacer ciclos
Hola! Cómo están? Quería consultar sobre el ejercicio de bordes; lo hice y probé con algunos de los tests, (no probe con todos porque no encontraba la consigna por lo que hice alguna cosita diferente al enunciado y tenía que modificar demasiadas cosas que crei que no eran el centro del ej) y funciona pero quería preguntar por la eficiencia y estilo; creo que no recorre cosas 2 veces, pero cree una función para calcular el tamaño que va a tener que tener mi nueva matriz y eso ya me suena medio raro. Me podrían decir que opinan? En el main hay cosas que solo me sirvieron para chequear algunos puntos por separado del programa, pero no va a su funcionamiento real.
include
int vueltasadar(int dim){ int contador=0, resto=0;
}
void funcionbordes(int dim, int matriz[][dim],int matrizrta[]){ int vueltas=vueltasadar(dim);
int main() { int mat_input_3[][6] = { {1, 1, 1, 1, 1, 1}, {1, -2, 2, -2, 2, 1}, {1, 4, 1, 2, -4, 1}, {1, 0, 3, 3, 0, 1}, {1, -2, -2, 2, 2, 1}, {1, 1, 1, 1, 1, 1} };