Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
ayudantia 1 mod 4
#include <stdio.h> #include <stdlib.h> void poblar(int **, int **, int **, int *); void ordenar(int *, int *, int *, int); void imprimirMayorVentas(int *, int *, int); void imprimirMayorGanancias(int *, int *, int); void imprimirPremioSorpresa(int *, int *, int *, int, int); int compara(const void *, const void *); int main() { int *ids = NULL; int *totalGanancia = NULL; int *totalVentas = NULL; int largo = 0; int tiendaSorpresa; poblar(&ids, &totalGanancia, &totalVentas, &largo); if (largo != 0) { ordenar(ids, totalGanancia, totalVentas, largo); imprimirMayorVentas(ids, totalVentas, largo); imprimirMayorGanancias(ids, totalGanancia, largo); scanf("%d", &tiendaSorpresa); imprimirPremioSorpresa(ids, totalGanancia, totalVentas, largo, tiendaSorpresa); } else { printf("No existen datos de ninguna tienda"); } } void poblar(int **ids, int **ganancias, int **ventas, int *largo) { while (1) { int idTienda; scanf("%d", &idTienda); if (!idTienda) { return; } int nVentas = 0; int sumaGanancias = 0; while (1) { int ganancia; scanf("%d", &ganancia); if (!ganancia) { break; } nVentas++; sumaGanancias += ganancia; } *ids = (int *)realloc(*ids, sizeof(int) * ((*largo) + 1)); *ventas = (int *)realloc(*ventas, sizeof(int) * ((*largo) + 1)); *ganancias = (int *)realloc(*ganancias, sizeof(int) * ((*largo) + 1)); (*ids)[*largo] = idTienda; (*ventas)[*largo] = nVentas; (*ganancias)[*largo] = sumaGanancias; (*largo)++; } } void ordenar(int *ids, int *ganancias, int *ventas, int largo) { for (int i = 0; i < largo - 1; i++) { for (int j = i + 1; j < largo; j++) { if (ids[i] > ids[j]) { int aux1 = ids[i]; int aux2 = ganancias[i]; int aux3 = ventas[i]; ids[i] = ids[j]; ganancias[i] = ganancias[j]; ventas[i] = ventas[j]; ids[j] = aux1; ganancias[j] = aux2; ventas[j] = aux3; } } } } void imprimirMayorVentas(int *ids, int *ventas, int largo) { int idTienda; int mayorNVentas; for (int i = 0; i < largo; i++) { if (i == 0) { idTienda = ids[i]; mayorNVentas = ventas[i]; } else { if (ventas[i] > mayorNVentas) { mayorNVentas = ventas[i]; idTienda = ids[i]; } } } printf("Con %d ventas en el dia, la tienda con mayor cantidad de ventas fue la tienda: %d\n", mayorNVentas, idTienda); } void imprimirMayorGanancias(int *ids, int *ganancia, int largo) { int idTienda; int mayorGanancias; for (int i = 0; i < largo; i++) { if (i == 0) { idTienda = ids[i]; mayorGanancias = ganancia[i]; } else { if (ganancia[i] > mayorGanancias) { mayorGanancias = ganancia[i]; idTienda = ids[i]; } } } printf("La tienda cuyo total de ventas fue el maximo durante el dia fue la tienda: %d con un total de %d pesos\n", idTienda, mayorGanancias); } int compara(const void *a, const void *b) { int *A = (int *)a; int *B = (int *)b; return *A - *B; } void imprimirPremioSorpresa(int *ids, int *ganancias, int *ventas, int largo, int tienda) { int *puntero = bsearch(&tienda, ids, largo, sizeof(int), compara); if (puntero == NULL) { printf("Ninguna tienda gano el premio sorpresa: %d", tienda); } else { printf("La tienda: %d, que realizo %d ventas con un total de %d pesos ha ganado el PREMIO SORPRESA!!!", *puntero, ventas[puntero - ids], ganancias[puntero - ids]); } }
run
|
edit
|
history
|
help
0
day 3 integer manipulation
etapa final de pregunta 2
child process
3.1.3 Quick sort, Merge sort
coding!!Woo!!
método de ordenamiento insertion sort
MULTI-CAST
variable number of arguments 3
PREGUNTA 2, GUÍA 4, MÓDULO 3
program