Dev - C++ - Necesito ayuda con un programa

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Kevin Nicolas (4 intervenciones) el 22/11/2019 13:37:10
Hola no entiendo como hacer este ejercicio


Programa

Se supone que tengo que comparar los productos que se vendieron en ese lugar y luego decir la cantidad que mas se vendió de ellos, y ademas decir el nombre del que se vendió menos dentro de ese mismo lugar pero no entiendo como compararlos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Alfil (1444 intervenciones) el 23/11/2019 06:25:20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <string>
#include <vector>
#include <cctype>
 
using namespace std;
 
struct Producto {
    string nombre;
    float precio;
    int cantidad;
    string lugar;
};
 
void maximo( const vector<Producto> v );
void mejoresLaAlameda( const vector<Producto> v );
void minimo( const vector<Producto> v );
void menosVendidoLaAlameda( const vector<Producto> v );
 
int main()
{
    Producto p;
    vector<Producto> v;
    char opcion;
 
    cout << "\nIntroducir datos:\n";
    do {
       cout << "\nNombre del producto: ";
       getline( cin, p.nombre );
       cout << "Precio de venta: ";
       cin >> p.precio;
       cout << "Unidades vendidas: ";
       cin >> p.cantidad;
       cin.ignore( 80, '\n' );
       cout << "Lugar de mayor venta: ";
       getline( cin, p.lugar );
 
       v.push_back( p );
 
       cout << "\nIntroducir datos de otro producto (S/n): ";
       cin >> opcion;
       opcion = toupper( opcion );
       cin.ignore( 80, '\n' );
 
    } while( opcion == 'S' );
 
    maximo( v );
    mejoresLaAlameda( v );
    minimo( v );
    menosVendidoLaAlameda( v );
 
    return 0;
}
 
void maximo( const vector<Producto> v )
{
    int max, pos;
 
    for( int i = 0; i < v.size(); i++ ) {
        if( i == 0 || v[i].cantidad > max ) {
            max = v[i].cantidad;
            pos = i;
        }
    }
 
    cout << "\nProducto mas vendido: " << v[pos].nombre << endl;
}
 
void mejoresLaAlameda( const vector<Producto> v )
{
    int count = 0;
 
    for( int i = 0; i < v.size(); i++ )
        if( v[i].lugar == "La Alameda" ) count++;
 
    cout << "\nCantidad de producto que mejor se venden en La Alameda: " << count << endl;
}
 
void minimo( const vector<Producto> v )
{
    int min, pos;
 
    for( int i = 0; i < v.size(); i++ ) {
        if( i == 0 || v[i].cantidad < min ) {
            min = v[i].cantidad;
            pos = i;
        }
    }
 
    cout << "\nProducto menos vendido: " << v[pos].nombre << endl;
}
 
void menosVendidoLaAlameda( const vector<Producto> v )
{
    int pos = -1;
    long int min = 1000000000;
 
    for( int i = 0; i < v.size(); i++ ) {
        if( v[i].cantidad < min && v[i].lugar == "La Alameda" ) {
            min = v[i].cantidad;
            pos = i;
        }
    }
 
    cout << "\nProducto menos vendido en La Alameda: ";
    pos == -1 ? cout << "Sin venta" << endl : cout << v[pos].nombre << endl;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Rodrigo (539 intervenciones) el 23/11/2019 16:14:07
mejoresLaAlameda solo cuenta los vendidos, no los mejores vendidos, parece que se pidiera el producto con mas ventas en el enunciado.
Si fuera asi, habria que usar una logica similar a la mostrada en menosVendidoLaAlameda, pero usando el maximo, no el minimo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar