Dev - C++ - punteros

 
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++

punteros

Publicado por Dennis (63 intervenciones) el 28/02/2022 22:27:24
Donde esta el error.
El objetivo es crear un puntero donde se almacenen por rango una lista de notas y después mostrarlas por tango las notas.
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
#include <iostream>
 
using namespace std;
 
int leer(int* lista, int rango, int total)
{
    int notas;
    for(int i = 0; i < total; i++)
    {
        cout<< "Nota #" << i+1 << ": ";
        cin>> notas;
        lista[notas/rango]++;
    }
    return *lista;
}
 
void mostrar(int* lista, int total){
    for(int i = 0; i < total; i++)
    {
        cout<< "#" << i+1 << "; " << lista[i];
    }
}
 
int main(){
    int cantNotas;
    int* lista;
    int rango;
 
    cout<< "Cantidad de notas: ";
    cin>> cantNotas;
 
    cout<< "Rango: ";
    cin>> rango;
 
    if(cantNotas % rango == 0)
    {
        rango += 1;
    }
 
    lista =new int[rango];
 
    leer(lista, rango, cantNotas);
    mostrar(lista, cantNotas);
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
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++

punteros

Publicado por Alfil (1444 intervenciones) el 01/03/2022 10:49:09
No he terminado de entender bien cual era el objetivo del ejercicio, he tomado el rango como la nota del alumno (del 1 al 10 por ejemplo), y la cantidad de notas como la cantidad de alumnos. En la lista se almacenan las notas de acuerdo con su puntuación.

Ten en cuenta que en el procedimiento leer, se debería poder evitar que se introduzca una nota fuera de rango (con un while).

Si no era ese el objetivo, espero que al menos te sirva como base.



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
#include <iostream>
 
using namespace std;
 
void inicializar(int* lista, int rango);
void leer(int* lista, int rango, int total);
void mostrar(int* lista, int total);
 
int main()
{
    int cantNotas;
    int* lista;
    int rango;
 
    cout << "Cantidad de notas: "; cin >> cantNotas;
    cout << "Rango: "; cin >> rango;
 
    lista = new int[rango];
 
    inicializar(lista, rango);
    leer(lista, rango, cantNotas);
    mostrar(lista, rango);
 
    return 0;
}
 
void inicializar(int* lista, int rango)
{
    for (int i = 0; i < rango; i++)
        lista[i] = 0;
}
 
void leer(int* lista, int rango, int total)
{
    int notas;
 
    for(int i = 0; i < total; i++)
    {
        cout << "Nota #" << i+1 << ": ";
        cin >> notas;
        lista[notas-1]++;
    }
}
 
void mostrar(int* lista, int total)
{
    cout << endl;
    for(int i = 0; i < total; i++)
        cout << "#" << i+1 << "; " << lista[i] << endl;
}
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