Página 1 de 1

Ayuda Urgente !!

Publicado: 15 May 2012, 02:59
por CLASHH
Un administrador de consorcios de edificios , atiende 10 edificios, como todos los edificios fueron realizados por medio de planes de fomento son todos iguales y tienen cada uno 50 departamentos de 3 ambientes
Mensualmente se realizan distintas tareas de mantenimiento en estos edificios debiendo ser las mismas pagadas en forma proporcional en partes iguales por los habitantes de cada uno de ellos.
Cada vez que se realiza un arreglo se obtiene la siguiente informacion

Numero de factura
Numero de Edificio
Codigo de proveedor
Monto de la Factura
fecha de vencimiento

estos datos finalizan con Numero de factura igual a 0

los proveedores son 5, ascensorista, electricista, pintor , plomero y limpieza
Estos Proveedores son los mismos para todos los edificios


Se desea Saber

Monto totall gastado por cada edificio
Mayor gasto efectuado , a que edificio y proveedor pertenece
Valor a pagar en calidad de expensas
Proveedor que no trabajo en ninguno de los edificios
Valor promedio de las facturas

el codigo es asi

#include<stdio.h>
#include<conio.h>
int main()
{
int edif,cprov;
float cont,nfact,fvencfact,imp,gte1,gte2,gte3,gte4,gte5,gte6,gte7,gte8,gte9,gte10,mg,mge,mgp,exp,prom,gtf,dept,p1,p2,p3,p4,p5;
printf(" ingrese numero de factura: ");
scanf("%f",&nfact);
cont=1;
imp=0;
dept=500;
/*proveedores:
p1:Ascensorista.
p2:Electricista.
p3:Pintor.
p4:Plomero.
p5:Limpieza*/
while (nfact!=0) /*Ciclo Inexacto*/
{
Printf("ingrese numero de edificio: ");
scanf("%f",&edif);
printf("ingrese codigo proveedor: ");
scanf("%f",&cprov);
printf(" ingrese importe: ");
scanf("%f",&imp);
printf(" ingrese vencimiento: ");
scanf("%f",&fvencfact);
}
gtf=gtf+imp;
printf(" el gasto total es: %5.2f ",gtf);
switch (edif)
/* Comienza Switch de efificios*/
{
case 1:
gte1=gte1+imp;
break;

case 2:
gte2=gte2+imp;
break;

case 3:
gte3=gte3+imp;
break;

case 4:
gte4=gte4+imp;
break;

case 5:
gte5=gte5+imp;
break;

case 6:
gte6=gte6+imp;
break;

case 7:
gte7=gte7+imp;
break;

case 8:
gte8=gte8+imp;
break;

case 9:
gte9=gte9+imp;
break;

case 10:
gte10=gte10+imp;
break;

/* Finaliza Switch de edificios*/
}

switch (cprov)
/* Comienza Switch de proveedores*/
{
case 1:
p1=1;
break;

case 2:
p2=1;
break;

case 3:
p3=1;
break;

case 4:
p4=1;
break;

case 5:
p5=1;
break;
/* Finaliza Switch de proveedores*/
}
nfact=nfact=+1;

if (cont==1)
{
mg=imp; /*Mayor gasto*/
mge=edif; /*Edificio que mayor gasto realizo*/
mgp=cprov; /*Proveedor que mayor gasto realizo*/
cont==2;
}

if(imp>mg)
{
mg=imp; /*Mayor gasto total*/
mge=edif;
mgp=cprov;
}

exp=gtf/dept; /*Total de expensas*/
prom=gtf/nfact; /*Valor promedio de las facturas*/

if (p1==0)
{
printf(" *el proveedor codigo 1 no trabajo en ningun edificio* ");
}
if(p2==0)
{
printf(" *el proveedor codigo 2 no trabajo en ningun edificio* ");
}
if(p3==0)
{
printf(" *el proveedor codigo 3 trabajo en ningun edificio* ");
}
if(p4==0)
{
printf(" *el proveedor codigo 4 no trabajo en ningun edificio* ");
}
if(p5==0)
{
printf(" *el proveedor codigo 5 no trabajo en ningun edificio* ");
}

printf(" las expensas son de: ",exp);
printf(" el promedio de las facturas es: ",prom);

printf("El gasto total del Edificio 1 es %5.2f",gte1);
printf("El gasto total del Edificio 2 es %5.2f",gte2);
printf("El gasto total del Edificio 3 es %5.2f",gte3);
printf("El gasto total del Edificio 4 es %5.2f",gte4);
printf("El gasto total del Edificio 5 es %5.2f",gte5);
printf("El gasto total del Edificio 6 es %5.2f",gte6);
printf("El gasto total del Edificio 7 es %5.2f",gte7);
printf("El gasto total del Edificio 8 es %5.2f",gte8);
printf("El gasto total del Edificio 9 es %5.2f",gte9);
printf("El gasto total del Edificio 10 es %5.2f",gte10);



}
getch(); /*Finaliza nuestro programa*/
}


no lo puedo compilar alguien me ayuda??

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 03:19
por Usuario borrado 34842
El mismo compilador te va diciendo donde están los posibles fallos..
A ojo de gato, tienes un printf con P mayúscula (el segundo).

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 03:29
por CLASHH
Leoric escribió:El mismo compilador te va diciendo donde están los posibles fallos..
A ojo de gato, tienes un printf con P mayúscula (el segundo).
si eso ya esta gracias pero ahora cuando se compila, no termina nunca el programa :S

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 03:31
por f3rn@ndo
yo para no complicarme tomaria el total de lo generado por gastos comunes y dividiria en partes iguales a todos los trabajadores

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 03:32
por CLASHH
f3rn@ndo escribió:yo para no complicarme tomaria el total de lo generado por gastos comunes y dividiria en partes iguales a todos los trabajadores
no entendi eso me podrias explicar bien como seria eso?

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 03:51
por osnaraus
Esta todo mal.

1) Los acumuladores no estan inicializados
2) Usas 10 variables para los edificios (si tenes 200 edificios vas a declarar 200 variables ??)
3) Cerras el ciclo while y despues queres acumular y hacer el switch ???????? (lo vas a hacer solo para el ultimo dato)
4) que es esto : nfact=nfact=+1; ?????????????
5) que es esto: cont==2; ????????????????????
6) para que es el switch de los proveedores ??
7) Hablando de proveedores ... no vas a inicializar p1,p2,p3,p4,p5 ??

Para que pediste hace una semana que resolvamos el codigo ??

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 03:56
por CLASHH
osnaraus escribió:Esta todo mal.

1) Los acumuladores no estan inicializados
2) Usas 10 variables para los edificios (si tenes 200 edificios vas a declarar 200 variables ??)
3) Cerras el ciclo while y despues queres acumular y hacer el switch ???????? (lo vas a hacer solo para el ultimo dato)
4) que es esto : nfact=nfact=+1; ?????????????
5) que es esto: cont==2; ????????????????????
6) para que es el switch de los proveedores ??
7) Hablando de proveedores ... no vas a inicializar p1,p2,p3,p4,p5 ??

Para que pediste hace una semana que resolvamos el codigo ??
yase que lo pedi, pero preferi hacerlo por mi cuenta hasta donde me salga asi aprendo mejor =)
gracias por tdo pero mis dudas son
a que te referis con acumuladores??
la 3, y la 7!
cont==2 era contador para que cuente el 2 ingresado
y nfact=nfact=+1 me equivoque creo que quise poner con nfact=nfact+1
pasa que el tuyo estaba con arrays y lo tengo que hacer sin arrays!!!

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 04:02
por osnaraus
Dame 3 minutos y te lo modifico un poco para q funcione

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 04:05
por CLASHH
osnaraus escribió:Dame 3 minutos y te lo modifico un poco para q funcione
ok no hay problema pero explicame despues como lo hiciste!

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 04:46
por osnaraus
Ahi te dejo tu codigo modificado

Código: Seleccionar todo

#include<stdio.h>
#include<conio.h>
int main()
{
int edif,cprov, nfact, qfact=0, gte1=0;
float cont,fvencfact,imp,gte2=0,gte3=0,gte4=0,gte5=0,gte6=0,gte7=0,gte8=0,gte9=0,gte10=0,mg,mge,mgp,exp,prom,gtf=0,dept;
int p1=0,p2=0,p3=0,p4=0,p5=0;
printf("\n ingrese numero de factura: ");
scanf("%d",&nfact);
cont=1;
imp=0;
dept=500;
/*proveedores:
p1:Ascensorista.
p2:Electricista.
p3:Pintor.
p4:Plomero.
p5:Limpieza*/
while (nfact!=0) /*Ciclo Inexacto*/
{
printf("ingrese numero de edificio: ");
scanf("%d",&edif);
printf("ingrese codigo proveedor: ");
scanf("%d",&cprov);
printf(" ingrese importe: ");
scanf("%f",&imp);
printf(" ingrese vencimiento: ");
scanf("%f",&fvencfact);
gtf=gtf+imp;



switch (edif)
/* Comienza Switch de efificios*/
{
case 1:
gte1=gte1+imp;
printf("unoooooooooooooooo");
break;

case 2:
gte2=gte2+imp;
break;

case 3:
gte3=gte3+imp;
break;

case 4:
gte4=gte4+imp;
break;

case 5:
gte5=gte5+imp;
break;

case 6:
gte6=gte6+imp;
break;

case 7:
gte7=gte7+imp;
break;

case 8:
gte8=gte8+imp;
break;

case 9:
gte9=gte9+imp;
break;

case 10:
gte10=gte10+imp;
break;

/* Finaliza Switch de edificios*/
}

switch (cprov)
/* Comienza Switch de proveedores*/
{
case 1:
p1=1;
break;

case 2:
p2=1;
break;

case 3:
p3=1;
break;

case 4:
p4=1;
break;

case 5:
p5=1;
break;
/* Finaliza Switch de proveedores*/
}

if (cont==1)
{
mg=imp; /*Mayor gasto*/
//mge=edif; /*Edificio que mayor gasto realizo*/
//mgp=cprov; /*Proveedor que mayor gasto realizo*/
cont=2;
}

if(imp>mg)
{
mg=imp; /*Mayor gasto total*/
//mge=edif;
//mgp=cprov;
}
qfact=qfact+1;
printf(" ingrese numero de factura: ");
scanf("%d",&nfact);

}
printf(" el gasto total es: %5.2f ",gtf);
exp=gtf/dept; /*Total de expensas*/
prom=gtf/qfact; /*Valor promedio de las facturas*/


if (p1==0)
{
printf("\n *el proveedor codigo 1 no trabajo en ningun edificio* ");
}
if(p2==0)
{
printf("\n *el proveedor codigo 2 no trabajo en ningun edificio* ");
}
if(p3==0)
{
printf("\n *el proveedor codigo 3 trabajo en ningun edificio* ");
}
if(p4==0)
{
printf("\n *el proveedor codigo 4 no trabajo en ningun edificio* ");
}
if(p5==0)
{
printf("\n *el proveedor codigo 5 no trabajo en ningun edificio* ");
}

printf("\n las expensas son de: %5.2f",exp);
printf("\n el promedio de las facturas es: %5.2f ",prom);

printf("\nEl gasto total del Edificio 1 es %5.2f",gte1);
printf("\nEl gasto total del Edificio 2 es %5.2f",gte2);
printf("\nEl gasto total del Edificio 3 es %5.2f",gte3);
printf("\nEl gasto total del Edificio 4 es %5.2f",gte4);
printf("\nEl gasto total del Edificio 5 es %5.2f",gte5);
printf("\nEl gasto total del Edificio 6 es %5.2f",gte6);
printf("\nEl gasto total del Edificio 7 es %5.2f",gte7);
printf("\nEl gasto total del Edificio 8 es %5.2f",gte8);
printf("\nEl gasto total del Edificio 9 es %5.2f",gte9);
printf("\nEl gasto total del Edificio 10 es %5.2f",gte10);


getch(); /*Finaliza nuestro programa*/
return 1;
}

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 04:54
por CLASHH
osnaraus escribió:Ahi te dejo tu codigo modificado

Código: Seleccionar todo

#include<stdio.h>
#include<conio.h>
int main()
{
int edif,cprov, nfact, qfact=0, gte1=0;
float cont,fvencfact,imp,gte2=0,gte3=0,gte4=0,gte5=0,gte6=0,gte7=0,gte8=0,gte9=0,gte10=0,mg,mge,mgp,exp,prom,gtf=0,dept;
int p1=0,p2=0,p3=0,p4=0,p5=0;
printf("\n ingrese numero de factura: ");
scanf("%d",&nfact);
cont=1;
imp=0;
dept=500;
/*proveedores:
p1:Ascensorista.
p2:Electricista.
p3:Pintor.
p4:Plomero.
p5:Limpieza*/
while (nfact!=0) /*Ciclo Inexacto*/
{
printf("ingrese numero de edificio: ");
scanf("%d",&edif);
printf("ingrese codigo proveedor: ");
scanf("%d",&cprov);
printf(" ingrese importe: ");
scanf("%f",&imp);
printf(" ingrese vencimiento: ");
scanf("%f",&fvencfact);
gtf=gtf+imp;



switch (edif)
/* Comienza Switch de efificios*/
{
case 1:
gte1=gte1+imp;
printf("unoooooooooooooooo");
break;

case 2:
gte2=gte2+imp;
break;

case 3:
gte3=gte3+imp;
break;

case 4:
gte4=gte4+imp;
break;

case 5:
gte5=gte5+imp;
break;

case 6:
gte6=gte6+imp;
break;

case 7:
gte7=gte7+imp;
break;

case 8:
gte8=gte8+imp;
break;

case 9:
gte9=gte9+imp;
break;

case 10:
gte10=gte10+imp;
break;

/* Finaliza Switch de edificios*/
}

switch (cprov)
/* Comienza Switch de proveedores*/
{
case 1:
p1=1;
break;

case 2:
p2=1;
break;

case 3:
p3=1;
break;

case 4:
p4=1;
break;

case 5:
p5=1;
break;
/* Finaliza Switch de proveedores*/
}

if (cont==1)
{
mg=imp; /*Mayor gasto*/
//mge=edif; /*Edificio que mayor gasto realizo*/
//mgp=cprov; /*Proveedor que mayor gasto realizo*/
cont=2;
}

if(imp>mg)
{
mg=imp; /*Mayor gasto total*/
//mge=edif;
//mgp=cprov;
}
qfact=qfact+1;
printf(" ingrese numero de factura: ");
scanf("%d",&nfact);

}
printf(" el gasto total es: %5.2f ",gtf);
exp=gtf/dept; /*Total de expensas*/
prom=gtf/qfact; /*Valor promedio de las facturas*/


if (p1==0)
{
printf("\n *el proveedor codigo 1 no trabajo en ningun edificio* ");
}
if(p2==0)
{
printf("\n *el proveedor codigo 2 no trabajo en ningun edificio* ");
}
if(p3==0)
{
printf("\n *el proveedor codigo 3 trabajo en ningun edificio* ");
}
if(p4==0)
{
printf("\n *el proveedor codigo 4 no trabajo en ningun edificio* ");
}
if(p5==0)
{
printf("\n *el proveedor codigo 5 no trabajo en ningun edificio* ");
}

printf("\n las expensas son de: %5.2f",exp);
printf("\n el promedio de las facturas es: %5.2f ",prom);

printf("\nEl gasto total del Edificio 1 es %5.2f",gte1);
printf("\nEl gasto total del Edificio 2 es %5.2f",gte2);
printf("\nEl gasto total del Edificio 3 es %5.2f",gte3);
printf("\nEl gasto total del Edificio 4 es %5.2f",gte4);
printf("\nEl gasto total del Edificio 5 es %5.2f",gte5);
printf("\nEl gasto total del Edificio 6 es %5.2f",gte6);
printf("\nEl gasto total del Edificio 7 es %5.2f",gte7);
printf("\nEl gasto total del Edificio 8 es %5.2f",gte8);
printf("\nEl gasto total del Edificio 9 es %5.2f",gte9);
printf("\nEl gasto total del Edificio 10 es %5.2f",gte10);


getch(); /*Finaliza nuestro programa*/
return 1;
}
xq return 1?? y porque cuando dice monto de la factura o algo y pongo 1 me dice unoooooooooooooooo :|

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 04:58
por osnaraus
1) El printf que dice unooooooooooo sacalo a la mierda, solo lo puse porque no me entraba al case, y no encontraba el motivo, y era que habias declarado una variable como int y despues la leias como flotante y me pisaba la variable "edif".
2) No te gusta return 1 ? ponele return 0

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 05:08
por CLASHH
osnaraus escribió:1) El printf que dice unooooooooooo sacalo a la mierda, solo lo puse porque no me entraba al case, y no encontraba el motivo, y era que habias declarado una variable como int y despues la leias como flotante y me pisaba la variable "edif".
2) No te gusta return 1 ? ponele return 0
igual me sigue sin dar bien :/

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 06:06
por Usuario borrado 34842
Bro, pides demasiado, quieres todo hecho..
Tienes suerte que Osnaraus es buena gente.

Re: Ayuda Urgente !!

Publicado: 15 May 2012, 22:41
por CLASHH
Leoric escribió:Bro, pides demasiado, quieres todo hecho..
Tienes suerte que Osnaraus es buena gente.
no quiero todo echo sino no hubiera echo el codigo y soy newbie en todo esto no todos sabemos demasiado aprendo preguntando