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??
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).
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 :SLeoric 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).
yo para no complicarme tomaria el total de lo generado por gastos comunes y dividiria en partes iguales a todos los trabajadores
Siempre por aqui
no entendi eso me podrias explicar bien como seria eso?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
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 ??
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 =)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 ??
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!!!
ok no hay problema pero explicame despues como lo hiciste!osnaraus escribió:Dame 3 minutos y te lo modifico un poco para q funcione
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 :|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; }
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
2) No te gusta return 1 ? ponele return 0

igual me sigue sin dar bien :/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
Bro, pides demasiado, quieres todo hecho..
Tienes suerte que Osnaraus es buena gente.
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 preguntandoLeoric escribió:Bro, pides demasiado, quieres todo hecho..
Tienes suerte que Osnaraus es buena gente.