[ Foro de C ]
Trate pasar un codigo c++ a c pero no se ejecuta, me ayudan?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int mat[3][3];
int n,i,j,num,suma,cont;
printf("\n\tCuadrado Magico");
printf("\tValores de 1 al 9 ( los numeros no se deben repitir)\n");
printf("\n\tINGRESE LA MATRIZ\n");
for (i=1;i<=3;i++)
{
for (j=1;j<=3;j++)
{
do
{ printf("\tValor");
}
while(num<1 || num>9);
mat[i][j]=num;
}
}
// Imprime la matriz
for (i=1;i<=3;i++)
{
printf("\n\t");
for (j=1;j<=3;j++)
{
printf("\t");
}
}
cont=0; num=0;
//sumando filas
for (i=1;i<=3;i++)
{ suma=0;
for (j=1;j<=3;j++)
{
suma+=mat[i][j];
}
if(i==1)
{ num=suma;
}
if(num==suma)
{
cont++;
}
}
//Suma las columnas
for (i=1;i<=3;i++)
{ suma=0;
for (j=1;j<=3;j++)
{
suma+=mat[j][i];
}
if(num==suma)
{
cont++;
}
}
//Suma las diagonales
suma=0;
suma+=mat[1][1];
suma+=mat[2][2];
suma+=mat[3][3];
if(num==suma)
{ cont++;
}
suma=0;
suma+=mat[1][3];
suma+=mat[2][2];
suma+=mat[3][1];
if(num==suma)
{
cont++;
}
if (cont==8)
{
printf("\n\tEs un cuadro magico");
}
else
{ printf("\n\tNo es un cuadro magico");
}
system("pause");
}
hola invitado
el problema que le veo así de primeras, además de la mala identación es que la variable num contiene basura ya que nunca recibe ningun valor por lo que entra en un bucle sin infinito
si su valor no esta entre los parametros que es lo mas normal al tener basura y no sale de ahí ya que nunca cambia porque no recibe ningún valor
suerte ;-)
hola invitado yo otra vez
he visto que tienes unos cuantos fallos, lo principal es que un array de 3x3 sus indices van de 0 a 2, por lo que en caso de que rellenes num correctamente cosa que ahora no hace, lo guardaras fuera de la zona reservada y te dará un fallo o simplemente funcionara mal ya que usas mat[3][3] que esta fuera de su zona reservada
cuando pones que imprimes la matriz en ningún momento la imprimes
num lo usas para muchas cosas por lo que no esta claro cual es su función
cont lo incremetas e incrementas pero no lo usas
si usas getchar en vez de pause, te ahorras una libreria y es mas seguro
suma no la guardas en ningún lado y la pierdes cada vez
... por no seguir mas vale que empiezes de nuevo y te hagas un diagrama de flujo y veas que ahí te funciona
suerte ;-)
(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.)