Está en la página 1de 43

Ejercicio 1

#include<stdio.h>

#include<stdlib.h>

void Datos_Cliente(char a[][20], int b[], int c[], char d[][20], int e);

void Contadores(int f, int g, int h, int i, int j, int k);

int Tiquetes_Totales(int l, int m, int n);

int Clientes_Totales(int o, int p, int q);

int main(){

//int canmillas;

int opc;

int n;

printf("\n--------------------------- Aerolinea FlyCrash ----------------------");

printf("\n\n Digite el numero de clientes a registrar : ");

scanf("%d", &n);

//Arreglos Datos Cliente

char cliente [n][20] ;

int cedula [n] ;

int canmillas [n] ;

char tipotiquete [n][20] ;

//Contadores Clientes
int total_clientes_Regulares = 0;

int total_clientes_Silver = 0;

int total_clientes_Gold = 0;

//Contadores Tiquetes

int total_tiquetes_Primera_Clase = 0;

int total_tiquetes_Turista = 0;

int total_tiquetes_Turista_sin_equipaje = 0;

for (int i = 0; i < n; i++) {

printf("\n------------------------------------------------------------------------");

printf("\n\n Digite el nombre del cliente %d: ", i+1);

scanf("%s", &cliente[i]);

printf("\n Digite el numero de la cedula del cliente %d: ", i+1);

scanf("%d", &cedula[i]);

printf("\n Digite el tipo de tiquete que el cliente desea %d: ", i+1);

printf("\n (Primera-Clase, Turista, Turista-sin-equipaje): ");

scanf("%s", &tipotiquete[i]);

printf("\nIngrese la cantidad de millas que tiene acumuladas el cliente %d: ", i+1);

scanf("%d", &canmillas[i]);

printf("\n------------------------------------------------------------------------");

if(canmillas[i]<5000){
printf("\n------------------------------------------------------------------------");

printf("\n Tipos de tiquetes ");

printf("\n1.Primera Clase");

printf("\n2.Clase Turista");

printf("\n3.Clase Turista sin equipaje de Bodega");

printf("\n------------------------------------------------------------------------");

printf("\nIngrese el tipo de tiquete que desea adquirir: ");

scanf("%i", &opc);

switch(opc){

case 1:

printf("\nPor su acumulado en millas y seleccionar Primera


Clase su descuento es de 11%%\n");

total_clientes_Regulares++;

total_tiquetes_Primera_Clase++;

break;

case 2:

printf("\nPor su acumulado en millas y seleccionar Clase


Turista su descuento es de 7%%\n");

total_clientes_Regulares++;

total_tiquetes_Turista++;

break;

case 3:

printf("\nPor su acumulado en millas y seleccionar Clase


Turista sin equipaje de Bodega su descuento es de 5%%\n");

total_clientes_Regulares++;
total_tiquetes_Turista_sin_equipaje++;

break;

default: printf("La opcion que acaba de digitar es incorrecta\n");

else if(canmillas[i]>5000 && canmillas[i]<=10000){

printf("\n------------------------------------------------------------------------");

printf("\n Tipos de tiquetes ");

printf("\n1.Primera Clase");

printf("\n2.Clase Turista");

printf("\n3.Clase Turista sin equipaje de Bodega");

printf("\n------------------------------------------------------------------------");

printf("\nIngrese el tipo de tiquete que desea adquirir: ");

scanf("%i", &opc);

switch(opc){

case 1:

printf("\nPor su acumulado en millas y seleccionar Primera


Clase su descuento es de 11%%\n");

total_clientes_Silver++;

total_tiquetes_Primera_Clase++;

break;

case 2:

printf("\nPor su acumulado en millas y seleccionar Clase


Turista su descuento es de 8%%\n");

total_clientes_Silver++;
total_tiquetes_Turista++;

break;

case 3:

printf("\nPor su acumulado en millas y seleccionar Clase


Turista sin equipaje de Bodega su descuento es de 7%%\n");

total_clientes_Silver++;

total_tiquetes_Turista_sin_equipaje++;

break;

default: printf("La opcion que acaba de digitar es incorrecta\n");

else{

printf("\n------------------------------------------------------------------------");

printf("\n Tipos de tiquetes ");

printf("\n1.Primera Clase");

printf("\n2.Clase Turista");

printf("\n3.Clase Turista sin equipaje de Bodega");

printf("\n------------------------------------------------------------------------");

printf("\nIngrese el tipo de tiquete que desea adquirir: ");

scanf("%i", &opc);

switch(opc){

case 1:

printf("\nPor su acumulado en millas y seleccionar Primera


Clase su descuento es de 15%%\n");

total_clientes_Gold++;
total_tiquetes_Primera_Clase++;

break;

case 2:

printf("\nPor su acumulado en millas y seleccionar Clase


Turista su descuento es de 10%%\n");

total_clientes_Gold++;

total_tiquetes_Turista++;

break;

case 3:

printf("\nPor su acumulado en millas y seleccionar Clase


Turista sin equipaje de Bodega su descuento es de 8%%\n");

total_clientes_Gold++;

total_tiquetes_Turista_sin_equipaje++;

break;

default: printf("La opcion que acaba de digitar es incorrecta");

getchar();

system("pause");

system ("cls");

Datos_Cliente(cliente, cedula, canmillas, tipotiquete, n);

Contadores(total_clientes_Gold, total_clientes_Silver, total_clientes_Regulares,


total_tiquetes_Primera_Clase, total_tiquetes_Turista, total_tiquetes_Turista_sin_equipaje);
int Tiq_Totales=Tiquetes_Totales(total_tiquetes_Primera_Clase, total_tiquetes_Turista,
total_tiquetes_Turista_sin_equipaje);

int clnt_Totales=Clientes_Totales(total_clientes_Gold, total_clientes_Silver,


total_clientes_Regulares);

printf("\n------------------------------------------------------------------------\n");

printf("\n-------------------- DATOS Totales Aerolinea FlyCrash -------------------");

printf("\n Clientes Totales: %d ",clnt_Totales);

printf("\n Tiquetes Totales: %d ",Tiq_Totales);

printf("\n------------------------------------------------------------------------\n");

void Datos_Cliente(char a[][20], int b[], int c[], char d[][20], int e){

for (int i = 0; i < e; i++) {

printf("\n------------------------------------------------------------------------\n");

printf("\n-------------------- DATOS CLIENTES Aerolinea FlyCrash -------------------");

printf("\n Nombre del cliente %d: %s", i+1, a[i],"\n");

printf("\n Cedula del cliente %d: %d", i+1, b[i],"\n");

printf("\n Cantidad de millas del cliente %d: %d", i+1, c[i],"\n");

printf("\n Tipo del tiquete del cliente %d: %s", i+1, d[i],"\n");

printf("\n------------------------------------------------------------------------\n");

void Contadores(int f, int g, int h, int i, int j, int k){


printf("\n--------------------------------------------------------------------------------\n");

printf(" CANTIDAD CLIENTES POR CATEGORIA Y CANTIDAD DE TIQUETES POR TIPO");

printf("\n\nLa cantidad de clientes de la cateria Gold son: %d",f);

printf("\nLa cantidad de clientes de la cateria Silver son: %d",g);

printf("\nLa cantidad de clientes de la cateria Regulares son: %d",h);

printf("\n\nLa cantidad de tiquetes comprados de Primera Clase son: %d",i);

printf("\nLa cantidad de tiquetes comprados de clase turista son: %d",j);

printf("\nLa cantidad de tiquetes comprados de clase turista sin equipaje de bodega son:
%d",k);

printf("\n--------------------------------------------------------------------------------\n");

int Tiquetes_Totales(int l, int m, int n){

return(l+m+n);

int Clientes_Totales(int o, int p, int q){

return(o+p+q);

Ejercicio 2

#include <stdio.h>
#include<locale.h>

int verificar();

void guardar (char nombres[][15], int cedula [], int tipos [], int i, int tipo);

void resumir_contadores(int tipo1, int tipo2, int tipo3, int ciclos);

int main ()

int cilindraje, modelo;

int tipo=0;

int tipo1=0;

int tipo2=0;

int tipo3=0;

int ciclos=0;

int totaltipo=0;

int datos=0;

int i=0;

datos=verificar();

/*printf ("Ingrese la cantidad de datos a registrar: \n");

scanf("%d",&datos);*/

char nombres [datos][15];

int cedula [datos];

int tipos [datos];

float porcentajetipo1=0;

float porcentajetipo2=0;

float porcentajetipo3=0;

for(i=1;i<=datos;i++)
{

printf ("Digite y selecione una de las siguientes opciones.\n");

printf (" Tipo 1: vehiculos superiores a 2500 cc.\n");

printf (" Tipo 2: Vehiculos entre 1600 y 2500 cc.\n");

printf (" Tipo 3: Vehiculos inferiores a 1600 cc.\n");

scanf ("%d",&tipo);

switch (tipo)

case 1:

tipo1++;

printf ("Ingrese la siguiente informacion:\n");

guardar (nombres,cedula, tipos, i, tipo);

printf (" ¿Cual es el cilindraje de su vehiculo superior a 2500 cc ?\n");

scanf ("%d",&cilindraje);

printf ("¿ Cual es el modelo de su Vehiculo?\n");

scanf("%d",&modelo);

if (cilindraje > 2500 )

if (modelo <=2000)

{printf ("Tiene un descuento de 13 %%:\n");}

else

if (modelo >=2001 && modelo <= 2014)

{printf ("Tiene un descuento de 8 %%:\n");}

else
{

if (modelo >=2014)

{printf ("Tiene un descuento del 6 %%\n");}

break;

case 2:

tipo2++;

printf ("Ingrese la siguiente informacion:\n");

guardar (nombres,cedula, tipos, i, tipo);

/* printf (" Ingrese su nombre: \n");

scanf ("%s",&nombres[i]);

getchar ();

printf (" Ingrese su numero de identificacion: \n");

scanf ("%d",&cedula[i]);

tipos[i]=tipo;*/

printf ("¿ Cual es el cilindraje de su vehiculo entre 1600 y 2500 cc:?\n");

scanf ("%d",&cilindraje);

printf ("¿ Cual es el modelo de su Vehiculo?\n");

scanf("%d",&modelo);

if (cilindraje >=1600 && cilindraje<=2500)

if (modelo <=2000)
{printf ("Tiene un descuento del 16 %%\n");}

else

if (modelo >2001 && modelo <2014 )

{printf ("Tiene un descuento del 13 %%\n");}

else

if (modelo >2014)

{printf ("Tiene un descuento del 12 %%\n");}

break;

case 3:

tipo3++;

printf ("por favor ingrese la siguiente informacion:\n");

guardar (nombres,cedula, tipos, i, tipo);

/*printf (" Ingrese su nombre: \n");

scanf ("%s",&nombres[i]);

getchar ();

printf (" Ingrese su numero de Identificacion: \n");

scanf ("%d",&cedula[i]);

tipos[i]=tipo;*/

printf ("¿ Cual es el cilindraje de su vehiculo inferiores a 1600 cc ?\n");

scanf ("%d",&cilindraje);

printf ("¿ Cual es el modelo, de su Vehiculo?\n");

scanf("%d",&modelo);

if (cilindraje<1600)
{

printf ("Tiene un descuento del 10 %% para su modelo\n");

break;

default:

printf ("seleccione opcion 4 para finalizar\n");

break;

ciclos++;

resumir_contadores(tipo1, tipo2, tipo3, ciclos);

totaltipo=tipo1+tipo2+tipo3;

porcentajetipo1=tipo1*100/totaltipo;

porcentajetipo2=tipo2*100/totaltipo;

porcentajetipo3=tipo3*100/totaltipo;

printf ("Porcentaje de vehiculos para tipo 1, superiores a 2500 cc. es:%2.f%% \


n",porcentajetipo1);

printf ("Porcentaje de vehiculos para tipo 2, entre 1600 y 2500 cc. es:%2.f%% \
n",porcentajetipo2);

printf ("Porcentaje de vehiculos para tipo 3, inferiores a 1600 cc. es:%2.f%% \


n",porcentajetipo3);

for(i=1;i<=datos;i++){

printf("\n Nombre del cliente:%s\n",nombres[i]);

printf("Numero de identificacion del cliente:%i\n",cedula[i]);


printf("El Cliente tiene un vehiculo de cilindraje: %i ",tipos[i]);

return 0;

int verificar (){

int auxiliar;

do

printf("ingrese la cantidad de datos a registrar: \n");

scanf ("%d", &auxiliar);

while (auxiliar<0);

return auxiliar;

void guardar (char nombres[][15], int cedula [], int tipos [], int i, int tipo){

printf (" Ingrese su nombre: \n");

scanf("%s",&nombres[i]);

getchar ();

printf (" Ingrese su numero de Identificacion: \n");

scanf ("%d",&cedula[i]);

tipos[i]=tipo;

void resumir_contadores(tipo1, tipo2, tipo3, ciclos){


printf ("Cantidad de vehiculos para tipo 1, superiores a 2500 cc es:%d \
n",tipo1 );

printf ("Cantidad de vehiculos para tipo 2, entre 1600 y 2500 cc. es:%d \
n",tipo2 );

printf ("Cantidad de vehiculos para tipo 3, inferiores a 1600 cc es:%d \


n",tipo3 );

printf ("Cantidad de veces que se ejecuto el programa es:%d \n",ciclos );

Ejercicio 3

#include <stdio.h>

#include <stdlib.h>

int ingresos();

void platino();

void oro();

void bronce();

void tomardp(int aux, int cant, int cedulas[], char nombres[][15]);

void mostrardp(int aux, int cant, int cedulas[], char nombres[][15], int membresia[]);

int main(){

int cant;

cant=0;
printf("__________________________________________________________________________
_____________________________________________ \n");

printf(" Bienvenido a la Drogueria FarmaCity \n\n");

// tomar cantidad de ingresos deseados

cant = ingresos();

//auxiliar

int aux;

aux=0;

// Arreglos

int cedulas[cant];

int membresia[cant];

char nombres[cant][15];

// contadores

int ingreso_platino, ingreso_oro, ingreso_bronce, total_ingresos;

ingreso_platino=0;

ingreso_oro=0;

ingreso_bronce=0;

total_ingresos=0;
float porcentaje_platino, porcentaje_oro, porcentaje_bronce;

porcentaje_platino=0;

porcentaje_oro=0;

porcentaje_bronce=0;

// acumuladores

float dinero_platino, dinero_oro, dinero_bronce;

dinero_platino=0;

dinero_oro=0;

dinero_bronce=0;

while(aux < cant)

printf("__________________________________________________________________________
_____________________________________________ \n");

printf(" ==COMPRAS== \n");

printf(" Drogueria FarmaCity \n\n");

// toma de datos personales


tomardp(aux, cant, cedulas, nombres);

// puntos

printf("\n");

printf(" ::::::::::PUNTOS::::::::::\n\n");

printf("\n");

printf("Para aplicar sus descuentos ingrese por favor la cantidad de puntos que tiene
acumulados.\n\n");

int puntos=0;

int compra=0;

printf("PUNTOS \n");

scanf("%d",&puntos);

while(puntos<=0)

fflush(stdin);

printf("valor ingresado no valido.\n\n");

printf("PUNTOS \n");

scanf("%d",&puntos);

}
// condicional para cliente PLATINO

printf("\n");

if (puntos>3000)

// Cliente Nivel PLATINO

platino();

ingreso_platino++;

membresia[aux]=1;

printf("\n");

printf(" ::::::::::VALOR COMPRA::::::::::\n\n");

printf("Digite por favor el valor total de su compra.\n");

printf("\n");

printf("VALOR COMPRA \n");

scanf("%d",&compra);

printf("\n");

while(compra<=0)

fflush(stdin);

printf("valor ingresado no valido.\n\n");

printf("VALOR COMPRA \n");

scanf("%d",&compra);
}

// descuento compra del 8%

if (compra<=50000)

float descuento=compra*0.08;

float totaldescuento=compra-descuento;

printf(" ::La compra realizada se aplico un descuento del 8%% \n");

printf(" :: El valor a pagar con descuento es de $%.2f pesos. \


n",totaldescuento);

dinero_platino+=totaldescuento;

//Descuento compra del 15%

if (compra>50000)

float descuento=compra*0.15;

float totaldescuento=compra-descuento;

printf(" ::La compra realizada se aplico un descuento del 15%%. \n");

printf(" ::El valor a pagar con descuento es de $%.2f pesos. \


n",totaldescuento);

dinero_platino+=totaldescuento;

}
// condicional para cliente ORO

if (puntos<=3000 && puntos>=1500)

// Cliente Nivel ORO

oro();

ingreso_oro++;

membresia [aux]=2;

printf("\n");

printf(" ::::::::::VALOR COMPRA::::::::::\n\n");

printf("Digite por favor el valor total de su compra.\n");

printf("\n");

printf("VALOR COMPRA \n");

scanf("%d",&compra);

printf("\n");

while(compra<=0)

fflush(stdin);

printf("valor ingresado no valido.\n\n");

printf("VALOR COMPRA \n");

scanf("%d",&compra);

}
//Descuento No aplicado

if(compra<45000)

printf(" ::La compra realizada No tiene descuento. \n");

printf(" ::El valor a pagar es de $%d pesos. \n",compra);

dinero_oro+=compra;

//Descuento compra del 12%

if (compra>=45000 && compra<=75000)

float descuento=compra*0.12;

float totaldescuento=compra-descuento;

printf(" ::La compra realizada se aplico un descuento del 12%%. \n");

printf(" ::El valor a pagar con descuento es de $%.2f pesos. \


n",totaldescuento);

dinero_oro+=totaldescuento;

//Descuento compra del 17%

if(compra>75000)

{
float descuento=compra*0.17;

float totaldescuento=compra-descuento;

printf(" ::La compra realizada se aplico un descuento del 17%%. \n");

printf(" ::El valor a pagar con descuento es de $%.2f pesos. \


n",totaldescuento);

dinero_oro+=totaldescuento;

//condicional para cliente BRONCE

if (puntos<1500)

// cliente Nivel BRONCE

bronce();

ingreso_bronce++;

membresia [aux]=3;

printf("\n");

printf(" ::::::::::VALOR COMPRA::::::::::\n\n");

printf("Digite por favor el valor total de su compra.\n");

printf("\n");

printf("VALOR COMPRA \n");

scanf("%d",&compra);
printf("\n");

while(compra<=0)

fflush(stdin);

printf("valor ingresado no valido.\n\n");

printf("VALOR COMPRA \n");

scanf("%d",&compra);

//Descuento No aplicado

printf(" ::La compra realizada No tiene descuento. \n");

printf(" ::El valor a pagar es de $%d pesos. \n",compra);

dinero_bronce+=compra;

aux++;

} //final
while____________________________________________________________________________
________________________________________

//system("cls");

printf("\n");
printf("__________________________________________________________________________
_____________________________________________ \n");

// cantidad de ingresos por membresia

printf("\n");

printf("Cantidad de ingresos por membresia:\n\n");

printf("Cliente Platino: %d ingresos \n",ingreso_platino );

printf("Cliente Oro: %d ingresos \n",ingreso_oro);

printf("Cliente Bronce: %d ingresos \n",ingreso_bronce);

//Porcentajes de ingresos

fflush(stdin);

printf("\n");

printf("Porcentajes de ingreso por membresia:\n\n");

total_ingresos=ingreso_platino+ingreso_oro+ingreso_bronce;

porcentaje_platino=((float)ingreso_platino/(float)total_ingresos)*100;

porcentaje_oro=((float)ingreso_oro/(float)total_ingresos)*100;

porcentaje_bronce=((float)ingreso_bronce/(float)total_ingresos)*100;

printf("Cliente Platino: %.2f %% \n",porcentaje_platino);

printf("Cliente Oro: %.2f %% \n",porcentaje_oro);

printf("Cliente Bronce: %.2f %% \n",porcentaje_bronce);

printf("________________________________________________\n");

printf("Total de ingresos: %d ====100%% \n\n",total_ingresos);


// total de dinero registrado por cada categoria

printf("\n");

printf("El total de dinero por membresia:\n\n");

printf("Cliente Platino: $ %.2f pesos \n",dinero_platino);

printf("Cliente Oro: $ %.2f pesos\n",dinero_oro);

printf("Cliente Bronce: $ %.2f pesos\n",dinero_bronce);

// clientes que ingresaron

mostrardp(aux, cant, cedulas, nombres, membresia);

return 0;

// funcion de ingresos para compras

int ingresos()

int aux2;

do {

printf("\n");

printf("Por favor digite el Numero de Compras que desea ingresar\n");


scanf("%d",&aux2);

if (aux2<=0)

printf("valor no valido");

} while(aux2<=0);

return aux2;

// funcion tomar datos personales

void tomardp(int aux, int cant, int cedulas[], char nombres[][15]){

printf("\n");

printf(" ::::::::::Datos Personales::::::::::\n\n");

printf("Ingrese por favor su Nombre \n");

printf("\n");

scanf("%s",&nombres[aux]);

fflush(stdin);

printf("\n");

printf("Ingrese por favor su numero de cedula sin puntos ni comas \n");

printf("\n");

scanf("%d",&cedulas[aux]);
while(cedulas[aux]<=0)

fflush(stdin);

printf("valor ingresado no valido.\n\n");

scanf("%d",&cedulas[aux]);

// funciones mensaje de memebresisas a las que pertenece

void platino(){

printf(" Usted pertenece a la MEMBRESIA PLATINO\n");

printf("\n");

printf(" para compras hasta $50.000 se aplica descuento del 8%%\n");

printf(" para compras mayores a $50.000 se aplica descuento del 15%%\n");

printf("\n");

void oro(){

printf(" Usted pertenece a la MEMBRESIA ORO\n");

printf("\n");

printf(" para compras menores a $45.000 No aplica descuento\n");

printf(" para compras entre $45.000 y $75.000 aplica descuento del 12%%\n");

printf(" para compras mayores a $75.000 aplica descuento del 17%%\n");

printf("\n");
}

void bronce(){

printf(" Usted pertenece a la MEMBRESIA BRONCE\n");

printf("\n");

printf(" No tiene descuento en su compra.\n");

printf("\n");

// funcion mostrar datos pesonales de clientes que ingresaron

void mostrardp(int aux, int cant, int cedulas[], char nombres[][15], int membresia[]){

int i=0;

printf("\n");

printf("Clientes Ingresados:\n");

for (i=0; i<aux; i++)

printf("\n");

printf(" Cliente %d \n",i+1);

printf("nombre: %s \n",nombres[i]);

printf("cedula: %d \n",cedulas[i]);

if (membresia[i]==1)

printf("memebresia: PLATINO \n");

if (membresia[i]==2)
{

printf("memebresia: ORO \n");

if (membresia[i]==3)

printf("memebresia BRONCE \n");

Ejercicio 4

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdbool.h>

//FUNCIONES

void iniciar_contadores(int contadores[]);

void solicitar_datos(char nombre[], int *cedula, char dia[]);

void seleccion_descuento(char promocion[], char dia_ingresado[], int contadores[]);

bool validar_dia(char dia[]);

void imprimir_datos(int cantidad_de_datos, char arrayNombres[][40], int arrayCedulas[], char


arrayDias[][10], int contadores[], double porcentajes[]);

//FUNCION PRINCIPAL

int main(){

//Declaracion de variables

//Datos del usuario


char dia[10];

char nombre[40];

int cedula;

int cantidad_de_datos;

//Contadores para cada dia

int contadores[6];

//Porcentajes para cada dia

double porcentajes[6];

char promocion[35];

//Ingresar y validar la cantidad de datos

do{

printf("Ingrese la cantidad de datos que desea registrar: ");

scanf("%d",&cantidad_de_datos);

if(cantidad_de_datos<1){

printf("El valor ingresado debe ser mayor o igual que 1. Intente


nuevamente.\n");

}while(cantidad_de_datos<1);

//Array de datos

char arrayNombres[cantidad_de_datos][40];

int arrayCedulas[cantidad_de_datos];

char arrayDias[cantidad_de_datos][10];

iniciar_contadores(contadores);

int i;
for(i=0;i<cantidad_de_datos;i++)

printf("REGISTRO No. %d: \n",i+1);

solicitar_datos(nombre,&cedula,dia);

seleccion_descuento(promocion, dia, contadores);

printf("DESCUENTO DISPONIBLE: %s\n",promocion);

//Validar dia ingresado

if(validar_dia(dia)){

i=i-1;

continue;

//Guardar datos en los arrays

strcpy(arrayNombres[i],nombre);

arrayCedulas[i]=cedula;

strcpy(arrayDias[i],dia);

imprimir_datos(cantidad_de_datos,arrayNombres,arrayCedulas,arrayDias,contadores,porcentajes)
;

//FUNCIONES

//Iniciar contadores

void iniciar_contadores(int contadores[]){


int i;

for(i=0;i<6;i++){

contadores[i]=0;

//Solicitar datos al usuario

//Paso de valores por referencia

void solicitar_datos(char nombre[], int *cedula, char dia[]){

//Solicitar los datos

char dia_aux[10];

char c;

while ((c = getchar()) != '\n' && c != EOF);

printf("Ingrese el nombre: ");

fgets(nombre,40,stdin);

nombre[strlen(nombre) - 1] = '\0';

printf("Ingrese el numero de cedula: ");

scanf("%d",cedula);

printf("Ingrese el dia que planea realizar la compra: ");

scanf("%s", dia);

//Seleccion descuento y aumento contadores

//Paso de valores por referencia y paso de vector como parametro


void seleccion_descuento(char promocion[], char dia_ingresado[], int contadores[]){

//Seleccion del descuento

if(strcmp(dia_ingresado,"lunes")==0){

strcpy(promocion,"Televisores - 8% de descuento.\n");

contadores[0]++;

else if(strcmp(dia_ingresado,"martes")==0){

strcpy(promocion,"Audio y sonido - 12% de descuento.\n");

contadores[1]++;

else if(strcmp(dia_ingresado,"miercoles")==0){

strcpy(promocion,"Hogar y estufas - 14% de descuento.\n");

contadores[2]++;

else if(strcmp(dia_ingresado,"jueves")==0){

strcpy(promocion,"Computadores - 11% de descuento.\n");

contadores[3]++;

else if(strcmp(dia_ingresado,"viernes")==0){

strcpy(promocion,"Gadgets y accesorios - 21% de descuento.\n");

contadores[4]++;

else if(strcmp(dia_ingresado,"sabado")==0){

strcpy(promocion,"Celulares - 7% de descuento.\n");

contadores[5]++;

else if(strcmp(dia_ingresado,"domingo")==0){

strcpy(promocion,"El dia domingo no es valido para aplicar un descuento. Intente


nuevamente.\n");
}

else{

strcpy(promocion,"El dia ingresado no es valido. Intente nuevamente.\n");

//Validar dia ingresado

//Funcion con un retorno especifico

bool validar_dia(char dia[]){

bool bandera;

if(strcmp(dia,"lunes")==0 || strcmp(dia,"martes")==0 || strcmp(dia,"miercoles")==0 ||


strcmp(dia,"jueves")==0 || strcmp(dia,"viernes")==0 || strcmp(dia,"sabado")==0){

bandera=false;

else{

bandera=true;

return bandera;

//Desplegar datos por pantalla

void imprimir_datos(int cantidad_de_datos, char arrayNombres[][40], int arrayCedulas[], char


arrayDias[][10], int contadores[], double porcentajes[]){

int i;

for(i=0;i<6;i++)

porcentajes[i]=100.0*contadores[i]/cantidad_de_datos;

}
printf("-----------------------------------------------");

printf("\nAcumulados de cada dia:\n\n");

printf("*Lunes: %d registros (%1.2f%%)\n",contadores[0],porcentajes[0]);

printf("*Martes: %d registros (%1.2f%%)\n",contadores[1],porcentajes[1]);

printf("*Miercoles: %d registros (%1.2f%%)\n",contadores[2],porcentajes[2]);

printf("*Jueves: %d registros (%1.2f%%)\n",contadores[3],porcentajes[3]);

printf("*Viernes: %d registros (%1.2f%%)\n",contadores[4],porcentajes[4]);

printf("*Sabado: %d registros (%1.2f%%)\n",contadores[5],porcentajes[5]);

printf("Total de registros: %d\n",cantidad_de_datos);

printf("\nConsolidado de todos los registros:\n\n");

for(i=0;i<cantidad_de_datos;i++)

printf("%d. Nombre: %s // CC: %d // Dia: %s \


n",i+1,arrayNombres[i],arrayCedulas[i],arrayDias[i]);

Ejercicio 5

#include <stdio.h>

int validar ();

void Toma_dato (char nombre[][15],int cedula[], int categoria[],int estrato, int i);

void consolidado (int categoria_1, int categoria_2,int categoria_3,int total_vlr_vivienda1,int


total_vlr_vivienda2,int total_vlr_vivienda3);

int main()

{
//variables

int estrato=0;

int categoria_1=0;

int categoria_2=0;

int categoria_3=0;

int Registro=0;

int valor_vivienda1=0;

int valor_vivienda2=0;

int valor_vivienda3=0;

int total_vlr_vivienda1=0;

int total_vlr_vivienda2=0;

int total_vlr_vivienda3=0;

int cant_registros;

/// dato negativo

cant_registros=validar();

char nombre[cant_registros][15];

int cedula[cant_registros];

int categoria[cant_registros];

int i;

for (i=0;i<cant_registros;i++)

///solicitaremos al usuario que defina su categoria de acuerdo al estrato


que pertenece

system("cls"); //limpiar pantalla

fflush (stdin);
//encabezado de la constructora

printf(" Bienvenido a su constructora UBUNTU, para la compra de su


vivienda \n");

printf(" Digite una opcion del 1 al 3 para establecer la categoria de acuerdo


al estrato al cual ud pertenece o 4 para finalizar, luego presione ENTER \n\n");

printf(" 1. categoria_1, estratos del 1 al 2 \n");

printf(" 2. categoria_2, estratos del 3 al 4 \n");

printf(" 3. categoria_3, estratos del 5 al 6 \n");

printf(" 4. para finalizar \n");

scanf ("%d", &estrato);

//validacion de descuento segun categoria escogida y valor de vivienda

switch (estrato)

case 1:

categoria_1++;

Toma_dato (nombre, cedula, categoria, estrato, i);

printf(" Ud pertenece a la categoria 1 \n\n");

printf(" digite el valor de la vivienda a adquirir \n\n");

printf
("_______________________________________________________________________________
________________________________________________________________________________
____________________________________________________\n");

scanf ("%d", &valor_vivienda1);

total_vlr_vivienda1=total_vlr_vivienda1+valor_vivienda1;

if(valor_vivienda1<=60000000)

printf("ud recibira un subsidio de 10%% \n\n");

printf ("****Pulse enter para continuar******\n");


getch(); // pausa hasta que el usuario haga enter

if(valor_vivienda1>75000000)

printf("ud recibira un subsidio de 5%% \n\n");

printf ("****Pulse enter para continuar******\n");

getch(); // pausa hasta que el usuario haga enter

break;

case 2:

categoria_2++;

Toma_dato (nombre, cedula, categoria, estrato, i);

printf(" Ud pertenece a la categoria 2 \n\n");

printf(" digite el valor de la vivienda a adquirir \n\n");

printf
("_______________________________________________________________________________
________________________________________________________________________________
________________________________________________________\n");

scanf ("%d", &valor_vivienda2);

total_vlr_vivienda2=total_vlr_vivienda2+valor_vivienda2;

if(valor_vivienda2<=85000000)

printf("ud recibira un subsidio de 7%% \n\n");

printf ("****Pulse enter para continuar******\n");

getch(); // pausa hasta que el usuario haga enter

}
if(valor_vivienda2>85000000 && valor_vivienda2
<=145000000)

printf("ud recibira un subsidio de 8%% \n\n");

printf ("****Pulse enter para continuar******\n");

getch(); // pausa hasta que el usuario haga enter

if(valor_vivienda2>145000000)

printf("ud recibira un subsidio de 11%% \n\n");

printf ("****Pulse enter para continuar******\n");

getch(); // pausa hasta que el usuario haga enter

break;

case 3:

categoria_3++;

Toma_dato (nombre, cedula, categoria, estrato, i);

printf(" Ud pertenece a la categoria 3, no es beneficiario de subsidio \n\n");

printf(" digite el valor de la vivienda a adquirir \n\n");

printf
("_______________________________________________________________________________
________________________________________________________________________________
__________________________________________________________\n");

scanf ("%d", &valor_vivienda3);

total_vlr_vivienda3=total_vlr_vivienda3+valor_vivienda3;

printf ("****Pulse enter para continuar******\n");


getch(); // pausa hasta que el usuario haga enter

break;

default:

printf(" Opcion no valida, Digite una de las opciones sugeridas para


continuar correctamente \n\n");

i--;

Registro++;

system("cls"); //limpiar pantalla

printf(" la cantidad de registros que ud ha diligenciado es: %d \n\n",Registro);

consolidado
(categoria_1,categoria_2,categoria_3,total_vlr_vivienda1,total_vlr_vivienda2,total_vlr_vivienda3);

//printf
("_______________________________________________________________________________
_____________________________________________\n");

printf("\n\n");

for(i=0; i <cant_registros; i++)

printf(" nombre %s \n", nombre[i]);

printf(" cedula %d \n", cedula[i]);

printf(" categoria %d \n", categoria[i]);

return 0;

int validar (){


int auxiliar_cant_reg;

///para evitar ingreso de datos de numeros negativos

do {

//se solicita al usuairio la cantidad de registros que desea ingresar

printf(" ingrese la cantidad de registros que desea ingresar \n");

scanf ("%d",&auxiliar_cant_reg); // tope

if(auxiliar_cant_reg<0)

printf("no se aceptan numeros negativos_ por favor digite


una opcion valida \n");

while(auxiliar_cant_reg<0);

return auxiliar_cant_reg;

void Toma_dato (char nombre[][15],int cedula[], int categoria[],int estrato, int i){

printf(" por favor digite su nombre \n");

scanf ("%s", &nombre[i]);

printf(" por favor digite su numero de cedula \n");

scanf ("%d", &cedula[i]);

categoria[i] = estrato;

void consolidado(int categoria_1, int categoria_2,int categoria_3,int total_vlr_vivienda1,int


total_vlr_vivienda2,int total_vlr_vivienda3){
//resumen final

printf(" la cantidad de registros de la categoria 1 es: %d \n", categoria_1);

printf(" la cantidad de registros de la categoria 2 es: %d \n", categoria_2);

printf(" la cantidad de registros de la categoria 3 es: %d \n\n", categoria_3);

printf(" el total valor vivienda categoria 1 es de: %d \n", total_vlr_vivienda1);

printf(" el total valor vivienda categoria 2 es de: %d \n", total_vlr_vivienda2);

printf(" el total valor vivienda categoria 3 es de: %d \n", total_vlr_vivienda3);

También podría gustarte