Ayuda con error en programa calculo de poligonal

irtchi
30 de Marzo del 2010
Aquí está el código, gracias de antemano.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <alloc.h>
#include <math.h>

typedef struct {

double lhf,lhe,lv,dg,af; /*Estructura de observacion con frente y espalda*/

}Tobs;

typedef struct {

double x,y;

}Tcoor;


void carga_obs (int n,Tobs *obs); /*Aqui llamamos al la funcion para cargar observaciones*/

double calc_acimut (int n,Tobs *obs,double desori0);


void calc_coor (int n,Tobs *obs,Tcoor *coor);


void main (void) /*Aqui definimos el bloque principal del programa*/



{
int i,n;
double desori0, cierre;
char tira[10];
Tobs *obs;
Tcoor *coor;

clrscr();

printf ("nn Introduzca el nº de estaciones de la poligonal: ");
gets (tira); n=atoi(tira);

obs = (Tobs *) malloc (sizeof(Tobs) * n);
coor = (Tcoor *) malloc (sizeof(Tcoor) * n);

printf ("nn Datos de la Primera la estacion: ");

printf ("n Coordenada x: ");
gets (tira); coor[0].x = atof(tira);

printf ("n Coordenada y: ");
gets (tira); coor[0].y = atof(tira);

printf ("n Introduzca la desorientacion: ");
gets (tira); desori0 = atof(tira);

clrscr();


carga_obs (n,obs); /* LLamada de la funcion de lectura de observaciones*/

cierre = calc_acimut (n,obs,desori0);
printf ("n El error de cierre angular es: %fn",cierre);

calc_coor (n,obs,coor);

for (i=0,i<n,i++)
{
printf ("n Estacion %d: x=%10.2f y=%10.2fn",i,coor[i].x,coor[i].y);
}

free (obs);
free (coor);

}

void carga_obs (int n,Tobs *obs)

{
int i;
char tira[15];
for (i=0;i<n;i++)
{
printf ("nEstacion %d:n",i);
printf ("nLectura Horizontal al frente: ");
gets (tira); obs[i].lhf = atof(tira);
printf ("nLectura Horizontal de espalda: ");
gets (tira); obs[i].lhe = atof(tira);
printf ("nLectura Vertical: ");
gets (tira); obs[i].lv = atof(tira);
printf ("nLectura Geometrica: ");
gets (tira); obs[i].dg = atof(tira);
}
}

double calc_acimut (int n, Tobs *obs, double desori0)

{
int i;
double az_inv, desori, error;
obs[0].af = obs[0].lhf + desori0; /*Calculo del primer azimut*/
for (i=1;i<n;i++)
{
az_inv = obs[i-1].af + 200; /*Calculo del primer acimut inverso*/
if(az_inv > 400) /*Condicionamiento a los 400 grados*/
az_inv -= 400;
desori = az_inv - obs[i].lhe; /*Calculo de la desorientacion de la siguiente estacion*/
obs[i].af = obs[i].lhf + desori; /*Calculo del siguiente acimut con la desorientacion calculada*/
}
az_inv = obs[3].af + 200; /*Calculo del primer acimut inverso*/
if(az_inv > 400) /*Condicionamiento a los 400 grados*/
az_inv -= 400;
desori = az_inv - obs[0].lhe;
error = desori - desori0;
return (error);

}

void calc_coor (int n, Tobs *obs, Tcoor *coor)

{
int i, norte;
double maxima_y, dr;
for (i=1, norte=0, maxima_y = coor[0].y; i<n; i++)
{
obs[i-1].af *= M_PI/200;
obs[i-1].lv *= M_PI/200;
dr = obs[i-1].dg * sin (obs[i-1].af);
coor[i].x = coor[i-1].x + dr * sin (obs[i-1].af);
coor[i].y = coor[i-1].y + dr * cos (obs[i-1].af);
if (coor[i].y > maxima_y)
{
maxima_y = coor[i].y;
norte = i;
}
}
printf ("n la estacion situada mas al norte es la %dn", norte);

}

irtchi
30 de Marzo del 2010
Ya dí con el error es el ; del for de la línea 68 que estaba con , simple.je , ahora rula de puta madre.