Amigos esta pregunta va con caracter mas que urgente ya que mañana tengo el parcial y me esta dando error lograr lo siguiente!
Vale aclarar que trabajo con C y no con C++ y que el archivo con el que trabajo es de extencion *.cpp. Tambien me da error al compilar con windows o linux en ambos no puedo lograr lo que necesito...
Necesito pasar una estructura local al main, por referencia a otra funcion...
Basicamente yo declaro las cosas de la siguiente manera:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//==============ESTRUCTURA=================//
struct datoscli {
int Monto;
};
struct datosreg {
struct datoscli datos[999];
};
//===============FUNCIONES==================//
void Graba_Fact (struct datosreg *v[]);
int main()/*PRINCIPAL*/
{
struct datosreg inforeg[2], *punterovector; //El puntero creo que debo usarlo para pasar la estructura, pero no se como.
.
.
.//bue aca va el resto del codigo...
.
//============Pasando Vector a funcion==============//
Graba_Fact(&inforeg);
}//Fin Main
//Aca afuera deberia ir la funcion
void Graba_Fact (struct datosreg *v[])
{.
.....
......
}
Dejo el codigo completo para que tengan una mejor idea.
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//==============ESTRUCTURA=================//
struct datoscli {
int Monto;
};
struct datosreg {
struct datoscli datos[999];
};
//===============FUNCIONES==================//
void Graba_Fact (struct datosreg *v[]);
int main()/*PRINCIPAL*/
{
//==========Variables===============//
struct datosreg inforeg[2], *punterovector;
int codreg, numcli; //Variables de Codigo de Region y Numero de Cliente respectivamente.
int band0=0,band1=0,band2=0; //Las banderas se usan en los Case del switch.
int Maxcli0=0, Maxcli1=0, Maxcli2=0; //Numero de cliente con el MAximo monto.
int MaxMonto0=0, MaxMonto1=0, MaxMonto2=0; //Monto Maximo correspondiente a region 1 - 2 y 3.
//==========Comienzo================//
system("cls");
printf ("Ingrese codigo de region (1 - 2 - 3) 0=SALIR:");
scanf ("%d",&codreg);
while(codreg>0 && codreg<4) {//0 Para SALIR
printf("\nIngese Numero Cliente:");
scanf ("%d",&numcli);
printf("\nIngese Monto:");
scanf("%d",&inforeg[codreg-1].datos[numcli].Monto);
switch(codreg)//El switch se encarga de seleccionar el lugar donde guardar el maximo dependiente de la region.
{
case 1:
if(band0=0 || inforeg[0].datos[numcli].Monto > MaxMonto0)
{
band0=1;
Maxcli0=numcli;
MaxMonto0=inforeg[0].datos[numcli].Monto;
};break;
case 2:
if(band1=0 || inforeg[1].datos[numcli].Monto > MaxMonto1)
{
band1=1;
Maxcli1=numcli;
MaxMonto1=inforeg[1].datos[numcli].Monto;
};break;
case 3:
if(band2=0 || inforeg[2].datos[numcli].Monto > MaxMonto2)
{
band2=1;
Maxcli2=numcli;
MaxMonto2=inforeg[2].datos[numcli].Monto;
};break;
}
printf ("\n\nIngrese PROXIMO codigo de region (1 - 2 - 3) 0=SALIR:");
scanf ("%d",&codreg);
};//Fin While.
//============Pasando Vector a funcion==============//
Graba_Fact(&inforeg);
//===============Finalizando=================//
printf("\n\nLos mayores son:");
printf("\nCod Reg..........Nro.Cli..........Monto\n");
printf("....1..............%d..............%d\n",Maxcli0,MaxMonto0);
printf("....2..............%d..............%d\n",Maxcli1,MaxMonto1);
printf("....3..............%d..............%d\n",Maxcli2,MaxMonto2);
printf("\n\n FIN \n\n\n");
return 0;
}/*FIN MAIN*/