[ Foro de C++ ]

Puntos faltantes

15-Nov-2022 20:56
Invitado (Miguel Angel )
0 Respuestas


4. El inquilino que pagó más y el monto.
5. Mostrar la facturación total de los servicios en orden ascendente
indicando: Nombre del servicio y monto
En este código como puedo desarrollar el punto 4 y 5, el 4 no puedo mostrar el nombre y el 5 no puedo mostrar el servicio pero si el orden

#include<stdio.h>
#include<conio.h>
#include<string.h>
#define letras 20


int main(){
int oficinas,numservicios;
int i,j,aux;
float mayor;
mayor=0;

printf("Sea bienvenido administrador\n");
printf("Este programa te ayudar%c a administrar la facturacion de tus inquilinos\n",160);
printf("Primero crear%c la tabla con los datos ingresados,mostrando total por servicio, total por oficina y total de la facturacion\n",160);
printf("Luego mostrar%c el inquilino que mas debe pagar y cuanto\n",160);
printf("Y finalmente mostrar%c los servicios de forma ascendente con sus precios correspondentes\n",160);
printf("Primero ingresa el n%cmero de oficinas:\n",163);
scanf("%i",&oficinas);
printf("Ahora ingresa el n%cmero de servicios:\n",163);
scanf("%i",&numservicios);

char nombservicios[numservicios][letras],nombreinqui[oficinas][letras];//Nombre del servicio y nombre del inquilino
float montopago[oficinas][numservicios],factotal,factotalofi[oficinas],factotalserv[numservicios];
factotalofi[oficinas]=0;
factotalserv[numservicios]=0;
factotal=0;

//NOMBRE INQUILINOS
for(i=0;i<oficinas;i++){
j=0;
printf("Escribe el nombre del inquilino de la oficina %i: ",i+1);
scanf("%s",&nombreinqui[i][j]);
j++;
}

//NOMBRE SERVICIOS
for(i=0;i<numservicios;i++){
j=0;
printf("Escribe el nombre del servicio %i: ",i+1);
scanf("%s",&nombservicios[i][j]);
j++;
}

//MONTO DE PAGO
for(i=0;i<numservicios;i++){
for(j=0;j<oficinas;j++){
printf("Escribe el monto a pagar del servicio de %s del inquilino de la oficina %i: ",&nombservicios[i],j+1);
scanf("%f",&montopago[i][j]);
}
}

//TOTAL POR OFICINA
for(i=0;i<numservicios;i++){
for(j=0;j<oficinas;j++){
factotalofi[j]=factotalofi[j]+montopago[i][j];
}
}

//FACTURACION TOTAL
for(j=0;j<oficinas;j++){
factotal=factotal+factotalofi[j];
}

//TOTAL POR SERVICIO
for(j=0;j<oficinas;j++){
for(i=0;i<numservicios;i++){
factotalserv[i]=factotalserv[i]+montopago[i][j];
}
}

//PRESENTACION DE LAS COLUMNAS SERVICIOS
printf("========================================Resumen=======================================\n");
printf("\t\t");
for(i=0;i<numservicios;i++){
printf("%s\t ",nombservicios[i]);
}
printf("\tTotalxOficina");

//PRESENTACION OFICINAS,MONTOS A PAGAR
printf("\n");
for(j=0;j<oficinas;j++){
printf("%s",nombreinqui[j]);
for(i=0;i<numservicios;i++){
printf("\t %.2f",montopago[i][j]);
}
printf("\t %.2f",factotalofi[j]);//PRESENTACION TOTAL POR OFICINA
printf("\n");
}

//PRESENTACION TOTAL POR SERVICIO
printf("Totalxserv");
for(i=0;i<numservicios;i++){
printf("\t %.2f",factotalserv[i]);
}
printf("\t %.2f",factotal);
printf("\n======================================================================================\n");

   //PRESENTACION FACTURACION TOTAL
   printf("La facturacion total es %.2f\n",factotal);
   printf("\n");
   
//ORDEN DE LOS TOTALES DE LOS SERVICIOS
for(i=0;i<numservicios;i++){
for(j=0;j<oficinas;j++){
if((factotalserv[i]>factotalserv[j])){
aux=factotalserv[i];
factotalserv[i]=factotalserv[j];
factotalserv[j]=aux;
}
}
}

//QUE OFICINA PAGO MAS Y CUANTO
for(j=0;j<oficinas;j++){
if(factotalofi[j]>mayor){
mayor=factotalofi[j];
}
}
printf("El inquilino(a) que debe pagar mas es x, debe pagar %.2f\n",mayor);

//PRESENTACION ORDENADA DE LOS TOTALES DE SERVICIOS
for(i=0;i<numservicios;i++){
printf("%s\t ",nombservicios[i]);
printf("%.2f\n",factotalserv[i]);
}

printf("Presione una tecla para finalizar");
getch();
return 0;
}




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...