Dev - C++ - c++ programa punteros

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

c++ programa punteros

Publicado por xxxmax (1 intervención) el 18/12/2020 22:22:03
Escriba un programa que asigne dinámicamente un arreglo lo suficientemente grande para almacenar un numero de puntuaciones definida por el usuario. Una vez todas las puntuaciones hayan sido introducidas, el arreglo debe ser pasado a una función que ordene dicho arreglo de forma ascendente. Otra función deberá ser llamada para calcular la puntuación promedio. El programa deberá desplegar las puntuaciones ordenadas y finalmente la puntuación promedio.

Los siguientes prototipos son sugeridos para la realización del programa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double *creaArreglo(int); // Asigna memoria para un arreglo void leePuntuaciones(double *, int); // Lee el arreglo void ordena(double *, int); // Ordena el arreglo ascendentemente
(usar algoritmo) double calculaPromedio(double *, int); // Calcula el promedio del arreglo
 
// Funcion para ordenar un arreglo por el metodo de la burbuja // La funcion recibe un puntero el cual sera tratado como arreglo void ordena(double *arreglo, int size)
{ bool swap;
int temp;
 
do
{
swap = false; for (int indice = 0; indice < (size - 1); indice++)
{
if (arreglo[indice] > arreglo[indice + 1])
{
temp = arreglo[indice]; arreglo[indice] = arreglo[indice + 1]; arreglo[indice + 1] = temp;
swap = true;
}
}
} while (swap);
}
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++

c++ programa punteros

Publicado por Alfil (1444 intervenciones) el 19/12/2020 07:29:34
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
#include <iostream>
 
using namespace std;
 
double* creaArreglo(int);
void leePuntuaciones(double*, int);
void ordena(double*, int);
void intercambio(double*, double*);
void imprimeArreglo(double*, int);
double calculaPromedio(double*, int);
 
int main()
{
    int sz;
 
    cout << "\nPuntuaciones: "; cin >> sz;
    double* v = creaArreglo(sz);
 
    cout << "\nPuntuaciones: " << endl;
    leePuntuaciones(v, sz);
 
    ordena(v, sz);
    cout << "\nArreglo ordenado: ";
    imprimeArreglo(v, sz);
 
    cout << "\n\nPromedio: " << calculaPromedio(v, sz) << endl;
 
    return 0;
}
 
double* creaArreglo(int sz)
{
    double* v = new double[sz];
 
    return v;
}
 
void leePuntuaciones(double* v, int sz)
{
    for (int i = 0; i < sz; i++)
    {
        cout << "(" << i + 1 << "/" << sz << "): ";
        cin >> v[i];
     }
}
 
void ordena(double* v, int sz)
{
    for( int i = 0; i < sz-1; i++ )
    {
        for (int j = 0; j < sz-i-1; j++)
        {
            if (v[j] > v[j+1])
                intercambio(&v[j], &v[j+1]);
        }
   }
}
 
void intercambio(double *a, double *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
 
void imprimeArreglo(double* v, int sz)
{
    for (int i = 0; i < sz; i++)
        cout << v[i] << " ";
}
 
double calculaPromedio(double* v, int sz)
{
    double suma = 0.0f;
 
    for (int i = 0; i < sz; i++)
        suma += v[i];
 
    return suma / float(sz);
}
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