Dev - C++ - Problemas con rangos

 
Vista:
Imágen de perfil de Dennis
Val: 141
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problemas con rangos

Publicado por Dennis (63 intervenciones) el 15/11/2020 16:15:17
Hola a todos y saludos.
Un usuario tiene que ingresar por teclado una x cantidad de notas, y debe poner cual es la nota maxima, ejemplo de 0-10 o 0-100 o como el entienda, después se le pide que rango es el que quiere, ejemplo si el escoge un rango de 3 con una nota máxima de 10 seria de 0-2 de 3-5 de 6-8 de 9-10 hasta que termine en la nota máxima.

Mi duda es como hago para mostrarle al usuario cuantas notas hay en cada rango de todas las ingresadas y como saco el rango de notas.
Cualquier sugerencia se los agradezco de antemano.
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++

Problemas con rangos

Publicado por Alfil (1444 intervenciones) el 15/11/2020 18:39:26
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, notas, max, rango;
 
    cout << "\nNotas: "; cin >> notas;
    cout << "Maxima: "; cin >> max;
    cout << "Rango: "; cin >> rango;
 
    int pos = (max / rango) + 1;
    int total[pos] = {0};
 
    cout << endl;
    for (int i = 0; i < notas; i++)
    {
        cout << "Nota " << i + 1 << "/" << notas << "): ";
        cin >> n;
 
        total[n/rango]++;
    }
 
    cout << endl;
 
    int inicio = 0, fin = rango - 1;
    for (int i = 0; i < pos; i++)
    {
        cout << "De " << inicio << " a " << fin << ": ";
        inicio = fin + 1;
        fin += rango;
        fin = fin > max ? max : fin;
        cout << total[i] << endl;
    }
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Dennis
Val: 141
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problemas con rangos

Publicado por Dennis (63 intervenciones) el 15/11/2020 21:40:57
Ya entendí, pero y si el usuario quiere ver todas las notas que se encuentran dentro del rango, como seria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
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++

Problemas con rangos

Publicado por Alfil (1444 intervenciones) el 15/11/2020 23:44:07
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
#include <iostream>
 
using namespace std;
 
void ordenar(int v[], int N);
 
int main()
{
    int notas, max, rango;
 
    cout << "\nNotas: "; cin >> notas;
    cout << "Maxima: "; cin >> max;
    cout << "Rango: "; cin >> rango;
 
    int pos = (max / rango) + 1;
    int total[pos] = {0};
    int v[notas];
 
    cout << endl;
 
    for (int i = 0; i < notas; i++)
    {
        cout << "Nota " << i + 1 << "/" << notas << "): ";
        cin >> v[i];
 
        total[v[i]/rango]++;
    }
 
    cout << endl;
 
    int inicio = 0, fin = rango - 1;
    for (int i = 0; i < pos; i++)
    {
        cout << "\nDe " << inicio << " a " << fin
             << " hay " << total[i] << ": ";
 
        for (int i = 0; i < notas; i++)
            if (v[i] >= inicio && v[i] <= fin)
                cout << v[i] << " ";
 
        inicio = fin + 1;
        fin += rango;
        fin = fin > max ? max : fin;
    }
 
    cout << endl;
 
    return 0;
}
 
void ordenar(int v[], int N)
{
    int valor;
    int j;
 
    for (int i = 1; i < N; i++)
    {
        valor = v[i];
        j = i;
        while (j > 0 && valor < v[j-1])
        {
            v[j] = v[j-1];
            j--;
        }
        v[j] = valor;
    }
}
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 Dennis
Val: 141
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problemas con rangos

Publicado por Dennis (63 intervenciones) el 16/11/2020 00:32:43
Gracias, por ultimo, esta parte:
1
fin = fin > max ? max : fin;
Me la puede traducir que nunca he visto ese código, y gracias por todo.
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 Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problemas con rangos

Publicado por Alfil (1444 intervenciones) el 16/11/2020 07:21:46
Eso es equivalente a:

1
2
3
4
if (fin > max)
	fin = max;
else
	fin = fin;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar