[ Foro de C ]
Hola a todos, me gustaria hacerles una consulta de un parcial de C que rendí hace poco y no pude resolver ya que todavia soy nuevo en esto de la programación.
Consiste en esto:
Dada una matriz nxn a elección por el usuario(máximo 10), mostrar en pantalla la cantidad de números perfectos ubicados en los sectores donde i+j sea igual a un numero par. Los números del interior de la matriz también deben ser ingresados por el usuario.
Un número perfecto es un número natural que es igual a la suma de sus divisores propios positivos.
Este es mi codigo:
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
int main() {
int i, j, filas, columnas, a, sum=0, mul=0, c=0;
printf ("Introduzca el numero de filas : ");
scanf ("%i",&filas);
printf ("\nIntroduzca el numero de columnas : ");
scanf ("%i",&columnas);
int matriz[filas][columnas];
for (i=1; i<filas+1; i++)
{
for (j=1; j<columnas+1; j++)
{
printf("Escriba un numero para la posicion [%i][%i] de la matriz ", i,j);
scanf("%i", &matriz[i][j]);
if((matriz[i][j])%2 == 0)
{
for(a=1; a<matriz[i][j]; a++)
{
mul=matriz[i][j]%a;
if(mul==0)
{
sum+=a;
}
else{}
}
if(sum==matriz[i][j])
{
c++;
}
else{}
}
else{}
}
}
printf("%i",c);
scanf("%i",&c);
return 0;
}
Desde ya muchas gracias!
Hay algunos errores. Por ejemplo, te piden las posiciones en las que i + j sea par, es decir "(i+j)%2 == 0), cuando tú haces "if((matriz[i][j])%2 == 0)". En cualquier caso, ¿te permiten crear funciones? Eso, junto con nombres de variables más descriptivos o algún comentario, ayudaría a hacer el programa más legible y, a la vez, a que tú mismo localizaras los fallos.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)