Dev - C++ - Programa de arreglos en C++

 
Vista:

Programa de arreglos en C++

Publicado por justin (1 intervención) el 16/10/2019 04:16:57
Se desea calcular las notas finales de los alumnos de un curso, así como también el promedio, mínimo y máximo de éstas. Se recibirá el número de alumnos y las notas parciales de cada uno de éstos. Las notas parciales corresponden a la I1, I2, T1, T2 y Examen. La nota final se calcula empleando la fórmula:

NF = 0.7*NP + 0.3*Ex

En donde NP es la nota de presentación calculada como:

NP = (I1+I2+T1+T2)/4

Estoy haciendo el algoritmo en c++ pero cuando compila y lo hago todo el maximo y minimo no me funcionan correctamente.

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
#include<iostream>
#include<cstdlib>
#include <windows.h>
 
using namespace std;
int main(){
	struct n
	{
		float p1,p2;
	    float t1,t2;
        float nf,np;
		float ex;
    }
 
	n[15];
 
	cout << "Porfavor Digite Las notas a continuacion "<<endl;
	Sleep(1500);
 
	for (int i=0; i<=14 ; i++) {
 
		cout << "Esriba la Nota de el Primer Parcial: ";
		cin>> n[i].p1;
		cout << "Esriba la Nota de el Segundo Parcial: ";
		cin>> n[i].p2;
		cout << "Esriba la Nota de el Primer Taller: ";
		cin>> n[i].t1;
		cout << "Esriba la Nota de el Segundo Taller: ";
		cin>> n[i].t2;
		cout << "Escriba la nota de el Examen: ";
		cin>> n[i].ex;
 
	n[i].np=(n[i].p1+n[i].p2+n[i].t1+n[i].t2)/4;
	n[i].nf=(0.7*n[i].np)+(0.3*n[i].ex);
 
    int nmax=0;
	int nmin=0;
 
	if(i==0)
	{
		nmax=n[i].nf;
		nmin=n[i].nf;
	}
 
	if(n[i].nf>nmax)
	{
	    nmax= n[i].nf;
	}
 
	else
 
	if(n[i].nf<nmin)
	{
	   nmin= n[i].nf;
    }
 
    cout <<" El Promedio de las notas es: " <<  n[i].np <<endl;
    cout <<" La nota maxima es: " <<  nmax <<endl;
    cout <<" La nota minima  es: " <<  nmin <<endl;
	cout <<" La nota final de el estudiante es: " << n[i].nf <<endl;
 
	return 0;
}
}
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++

Programa de arreglos en C++

Publicado por Alfil (1444 intervenciones) el 16/10/2019 07:06:46
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
#include <iostream>
 
using namespace std;
 
struct alumno {
    float p1, p2;
    float t1, t2;
    float nf, np;
    float ex;
};
 
float MaximoV( const alumno v[], int N );
float MinimoV( const alumno v[], int N );
 
int main()
{
    int numero;
    float promedioParcial = 0.0f;
    float promedioTotal = 0.0f;
 
    cout << "\nNumero de alumnos a procesar: ";
    cin  >> numero;
 
	alumno notas[numero];
 
	cout << "\nPorfavor Digite Las notas a continuacion:\n";
 
	for ( int i = 0; i < numero; i++ ){
 
        cout << "\nAlumno " << i +1 << ":\n";
		cout << "Primer Parcial: ";
		cin>> notas[i].p1;
 
		cout << "Segundo Parcial: ";
		cin>> notas[i].p2;
 
		cout << "Primer Taller: ";
		cin>> notas[i].t1;
 
		cout << "Segundo Taller: ";
		cin>> notas[i].t2;
 
		cout << "Examen: ";
		cin>> notas[i].ex;
 
        notas[i].np = ( notas[i].p1 + notas[i].p2 + notas[i].t1 + notas[i].t2) / 4;
        notas[i].nf = ( 0.7 * notas[i].np) + ( 0.3 * notas[i].ex );
 
        promedioParcial += notas[i].np;
        promedioTotal += notas[i].nf;
 
        cout << "\nEl Promedio de las notas es: " <<  notas[i].np
             << "\nLa nota final de el estudiante es: " << notas[i].nf << "\n";
 
 
	}
 
    cout << "\n\nEl Promedio de las notas parciales es: " << promedioParcial / numero
         << "\nEl promedio de las notas finales es: " << promedioTotal / numero
         << "\nLa nota maxima es: " <<  MaximoV( notas, numero )
         << "\nLa nota minima  es: " <<  MinimoV( notas, numero )
         <<endl;
 
	return 0;
 
}
 
float MaximoV( const alumno v[], int N )
{
    float max;
 
    for( int i = 0; i < N; i++ ) {
        if(i == 0 || v[i].nf > max) {
            max = v[i].nf;
        }
    }
    return max;
}
 
float MinimoV( const alumno v[], int N )
{
    float min;
 
    for( int i = 0; i < N; i++ ) {
        if(i == 0 || v[i].nf < min) {
            min = v[i].nf;
        }
    }
    return min;
}
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