Dev - C++ - Dev - c++ Programa compila pero deja de funcionar

 
Vista:

Dev - c++ Programa compila pero deja de funcionar

Publicado por Nando2312 (2 intervenciones) el 22/01/2021 00:29:36
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include<iostream>
 
struct Alumnos{
	char nombre[30];
	int edad;
	double nota1;
	double nota2;
	double nota3;
	double promedio;
}A[100];
 
 
void Pedir_datos();
void Mostrar_datos();
void Medir_promedio();
void Ordenar_promedio();
void Mostrar_promedio();
void linea();
 
using namespace std;
 
int N=3;
 
int main(){
 
	Pedir_datos();
	Mostrar_datos();
	Medir_promedio();
	Ordenar_promedio();
	Mostrar_promedio();
 
	return 0;
}
 
void Pedir_datos(){
 
	for(int i=1;i<=N;i++){
 
		linea();
		cout<<"Ingrese nombre del alumno "<<i<<": ";
		cin.getline(A[i].nombre,30);
		linea();
		cout<<"Ingrese edad del alumno "<<i<<": ";
		cin>>A[i].edad;
		linea();
		cout<<"Ingrese la nota 1: ";
		cin>>A[i].nota1;
		linea();
		cout<<"Ingrese la nota 2: ";
		cin>>A[i].nota2;
		linea();
		cout<<"Ingrese la nota 3: ";
		cin>>A[i].nota3;
		cin.ignore();
 
		system("cls");
 
	}
 
 
		system("pause");
		system("cls");
 
}
void Mostrar_datos(){
 
 
	for(int i=1;i<=N;i++){
 
	    linea();
		cout<<"Nombre del alumno:  "<<i<<": "<<A[i].nombre<<endl;
		linea();
		cout<<"Edad del alumno "<<i<<": "<<A[i].edad<<endl;
		linea();
		cout<<"Nota 1 del alumno "<<i<<": "<<A[i].nota1<<endl;
		linea();
		cout<<"Nota 2 del alumno "<<i<<": "<<A[i].nota2<<endl;
		linea();
		cout<<"Nota 3 del alumno "<<i<<": "<<A[i].nota3<<endl;
		linea();
		cout<<endl<<endl;
 
	}
 
	system("pause");
	system("cls");
 
}
 
void Medir_promedio(){
 
	for(int i=1;i<=N;i++){
		A[i].promedio=(A[i].nota1+A[i].nota2+A[i].nota3)/3;
	}
 
}
 
void Ordenar_promedio(){
 
 
	for(int i=1;i<=N;i++){
		for(int j=1;i<=N-1;j++){
 
			if(A[j].promedio>A[j+1].promedio){
 
				int aux = A[j].promedio;
				A[j].promedio = A[j+1].promedio;
				A[j+1].promedio=aux;
 
			}
 
		}
 
	}
 
}
 
void Mostrar_promedio(){
 
	for(int j=1;j<=N;j++){
 
		cout<<A[j].promedio<<endl;
 
	}
 
}
 
void linea(){
 
	int i=0;
 
	while(i<=60){
 
		cout<<"-";
 
		i++;
	}
 
	cout<<endl;
 
}
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 Rodrigo
Val: 1.781
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Dev - c++ Programa compila pero deja de funcionar

Publicado por Rodrigo (538 intervenciones) el 22/01/2021 00:47:46
Explica mas (o algo).

Encierra tu programa usando el boton </>Codigo
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

Dev - c++ Programa compila pero deja de funcionar

Publicado por Nando2312 (2 intervenciones) el 22/01/2021 00:57:31
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include<iostream>
 
struct Alumnos{
	char nombre[30];
	int edad;
	double nota1;
	double nota2;
	double nota3;
	double promedio;
}A[100];
 
 
void Pedir_datos();
void Mostrar_datos();
void Ordenar_promedio();
void Mostrar_promedio();
void linea();
 
using namespace std;
 
 
 
int main(){
 
	Pedir_datos();
	Mostrar_datos();
	Ordenar_promedio();
	Mostrar_promedio();
 
	return 0;
}
 
void Pedir_datos(){
 
	int N=3;
 
	for(int i=1;i<=N;i++){
 
		linea();
		cout<<"Ingrese nombre del alumno "<<i<<": ";
		cin.getline(A[i].nombre,30);
		linea();
		cout<<"Ingrese edad del alumno "<<i<<": ";
		cin>>A[i].edad;
		linea();
		cout<<"Ingrese la nota 1: ";
		cin>>A[i].nota1;
		linea();
		cout<<"Ingrese la nota 2: ";
		cin>>A[i].nota2;
		linea();
		cout<<"Ingrese la nota 3: ";
		cin>>A[i].nota3;
		cin.ignore();
		A[i].promedio=(A[i].nota1+A[i].nota2+A[i].nota3)/3;
		system("cls");
 
	}
 
 
		system("pause");
		system("cls");
 
}
void Mostrar_datos(){
 
		int N=3;
 
	for(int i=1;i<=N;i++){
 
	    linea();
		cout<<"Nombre del alumno:  "<<i<<": "<<A[i].nombre<<endl;
		linea();
		cout<<"Edad del alumno "<<i<<": "<<A[i].edad<<endl;
		linea();
		cout<<"Nota 1 del alumno "<<i<<": "<<A[i].nota1<<endl;
		linea();
		cout<<"Nota 2 del alumno "<<i<<": "<<A[i].nota2<<endl;
		linea();
		cout<<"Nota 3 del alumno "<<i<<": "<<A[i].nota3<<endl;
		linea();
		cout<<"Promedio: "<<A[i].promedio<<endl;
		cout<<endl<<endl;
 
	}
 
	system("pause");
	system("cls");
 
}
 
 
 
void Ordenar_promedio(){
 
	int N=3;
 
	for(int i=1;i<=N;i++){
		for(int j=0;i<N-1;j++){
 
			if(A[j].promedio>A[j+1].promedio){
 
				double aux = A[j].promedio;
				A[j].promedio = A[j+1].promedio;
				A[j+1].promedio=aux;
 
			}
 
		}
 
	}
 
}
 
void Mostrar_promedio(){
 
	int N=3;
 
	for(int j=1;j<=N;j++){
 
		cout<<A[j].promedio<<endl;
 
	}
 
}
 
void linea(){
 
	int i=0;
 
	while(i<=60){
 
		cout<<"-";
 
		i++;
	}
 
	cout<<endl;
 
}




Se ejecuta pero cuando llega al ordenamiento se cierra.
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.781
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Dev - c++ Programa compila pero deja de funcionar

Publicado por Rodrigo (538 intervenciones) el 22/01/2021 01:13:20
En la linea 99 quiza quieres usar la variable j siempre? No parece bien usar la variable i otra vez.

Y si comparas uasndo j, cuando j valga N, la comparacion de la linea 101 usara j+1 (N+1), que es un indice valido.

Normalmente se usan los arreglos comenzando los indices desde 0 en adelante. Dado que N es 3 en todas partes, no parece mal, pero si lo haces aumentar, no lo aumentes mas alla del tamano del arreglo - 1.

Deberias hacer que N sea una constante, y dejar de definirla en cada funcion.

La funcion linea quedaria mas corta usando un for.
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