C/Visual C - Problema

 
Vista:

Problema

Publicado por Adrian (6 intervenciones) el 19/06/2010 17:38:03
Hola foreros, espero que me podais ayudar estoy perdidisimo y no se donde tengo el fallo, os paso el codigo:

#include <stdio.h>
#include <stdlib.h>

int GenerarCM(int** cuadradoMagico, int x, int y, int max, int n, int i)
{
int xtemp, ytemp,j;
printf("%d %d",x,y);
x=x-1;
y=y+1;
xtemp=x;
ytemp=y;

if ((cuadradoMagico[x][y]==0)&&(x<0)&&(y>n))
{
cuadradoMagico[x][y]=i;

}
if (x==-1)
{
x=n-1;
}
if (y==n)
{
y=0;
}
if (cuadradoMagico[x][y]==0)
{
cuadradoMagico[x][y]=i;
}
else
{
x=xtemp+2;
y=ytemp-1;
cuadradoMagico[x][y]=i;
}

if (i<=max)
{
GenerarCM(cuadradoMagico,x,y,max,n,i++);//nicolas.duchateau
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ", cuadradoMagico[i][j]);
}
printf("\n");
}

}

main(int argc, char** argv) //newprojects arguments
{
int n,max,i,j,x=0,y=0,xtemp,ytemp;

if (atoi(argv[1])==1)
{
FILE *c;
int p,i=0,j,SUMA;
c=fopen("cuadrado.txt","r");
if (c==NULL)
{
printf("Error obrint els fitxers\n");
}
else
{
while (!feof(c))
{
fscanf(c,"%d",&p);
i++;
}

printf("%d\n",i);
fclose(c);
if (p%2==0)
{
printf("El cuadrado no es magico porque tiene lados pares y deverian ser impares");
}
else
{
p=sqrt(i);
int **cuadradoMagico1;
cuadradoMagico1=(int **) malloc(p*sizeof(int*));
for(i=0;i<p;i++)
{
cuadradoMagico1[i]=(int*) malloc(p*sizeof(int));
}
c=fopen("cuadrado.txt","r");
for(i=0;i<p;i++)
{
for(j=0;j<p;j++)
{
fscanf(c,"%d",&cuadradoMagico1[i][j]);
}
}
for(i=0;i<p;i++)
{
for(j=0;j<p;j++)
{
printf("%d",cuadradoMagico1[i][j]);
}
printf("\n");
}
fclose(c);
}

}
}

if (atoi(argv[1])==2)
{

n=atoi(argv[3]);

if (n%2==0)
{
printf("El numero introducido no es un numero impar\n");
}
else
{
int **cuadradoMagico;
cuadradoMagico=(int **) malloc(n*sizeof(int*));
for(i=0;i<n;i++)
{
cuadradoMagico[i]=(int*) malloc(n*sizeof(int));
}
max=n*n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cuadradoMagico[i][j]=0;
}
}
cuadradoMagico[0][n/2]=1;

x=n-1;
y=(n/2)+1;
cuadradoMagico[x][y]=2;
i=3;
GenerarCM(cuadradoMagico,x,y,max,n,i);

}
}
}

el caso es que cuando ejecuto "./p 1 cuadrado.txt" Me funciona a la perfección pero cuando intento ejecutar "./p 2 cuadrado.txt 3" Me salta un core dumped.

Yo seguire trabajando en ello pero de mientras ire mirando el foro haber si hay alguien a quien se le ha encendido la bombilla y sabe ver mi problema jejjejejjje

muchas gracias gente!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder