C/Visual C - Calcular el promedio de un alumno usando funciones C-Duda

 
Vista:
sin imagen de perfil
Val: 26
Ha aumentado su posición en 2 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Calcular el promedio de un alumno usando funciones C-Duda

Publicado por Ricardo (14 intervenciones) el 01/04/2018 22:39:43
Hola a todos soy nuevo y estaba haciendo un ejercicio y se me presentaron algunos problemas, cuando introduzco cualquier calificación siempre imprime lo de promedio pasara a 100 y el no aprobó, pero no imprime el si aprobó, de antemano muchas gracias, e añadido unas imagenes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*Hacer un programa que a través de una función calcule el promedio de un alumno que curso 3 materias
el semestre anterior y a travez de otra funcion imprima el promedio de esta persona considerando
que si este es 95 o mayor se le otorga el 100 ademas de una leyenda de "si aprobo" o "no aprobo";
considerando 60 como minimo aprobatorio*/
 
#include <stdio.h>
#include <stdlib.h>
#include "promedio.h"
#include "imprimir.h"
 
float promedio(float, float, float);
float imprimir(float);
float c1, c2, c3, p, P, I;
 
void main()
{
	printf("\nPor favor introduce las tres calificaciones: ");
	scanf_s("%f %f %f", &c1, &c2, &c3);
	P = promedio(c1,c2,c3);
	I = imprimir(p);
	system("pause>null");
}

1
2
3
4
5
6
float promedio(float c1, float c2, float c3)
{
	float p;
	p = (c1 + c2 + c3) / 3;
	return p;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
float imprimir(float p)
{
	if (p >= 95)
		p = 100;
	printf("\nEl promedio pasara a cien");
 
	{if (p >= 60)
		printf("\nSi aprobo");
	else
		printf("\nNo aprobo");
 
	return p;
	}
}

zJckDkx

5uWepkF

ou5gZf2
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

Calcular el promedio de un alumno usando funciones C-Duda

Publicado por Yamil Bracho (4 intervenciones) el 01/04/2018 23:25:30
Tienes una mezcla de variables...
1) el promedio lo almacenas en la variable "P", pero si embargo cuando llamas a imprimir le pasas "p", la cual esta inicializada en cero.
2) En imprimir si no colocas las llaves el if ejecuta la siguiente condicion si es true, asi que cambiala a

1
2
3
4
5
6
7
8
9
10
11
12
13
14
float imprimir(float p) {
	if (p >= 95) {
	    p = 100;
		printf("\nEl promedio pasara a cien");
	} else if (p >= 60) {
		printf("\nSi aprobo");
	    } else {
			printf("\nNo aprobo");
	    }
	}
 
	return p;
 
}
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
sin imagen de perfil
Val: 26
Ha aumentado su posición en 2 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Calcular el promedio de un alumno usando funciones C-Duda

Publicado por Ricardo (14 intervenciones) el 01/04/2018 23:54:06
Hola muchas gracias por responder, ya intente de la forma que mencionas y ahora cuando pongo las tres calificaciones por ejemplo 90 90 90 , me pone que reprobé, y cuando pongo 95 95 95 igual me pone que reprobe no pone el mensaje de que ''el promedio se pasara a 100''
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
sin imagen de perfil
Val: 26
Ha aumentado su posición en 2 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Calcular el promedio de un alumno usando funciones C-Duda

Publicado por Ricardo (14 intervenciones) el 02/04/2018 00:42:38
Bueno ya pude arreglar el programa gracias por la ayuda, así fue como acomode la función imprimir.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
float imprimir(float p) {
	if (p >= 95) {
		p = 100;
		printf("\nEl promedio pasara a cien");
	}
 
	if (p >= 60) {
		printf("\nSi aprobo");
	}
	else {
		printf("\nNo aprobo");
	}
	return p;
}

y el otro error que tenia era en el main tenia P = promedio(c1,c2,c3); cuando era p = (c1,c2,c3);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
#include "promedio.h"
#include "imprimir.h"
 
float promedio(float, float, float);
float imprimir(float);
float c1, c2, c3, p, I;
 
void main()
{
	printf("\nPor favor introduce las tres calificaciones: ");
	scanf_s("%f %f %f", &c1, &c2, &c3);
	p = promedio(c1,c2,c3);
	I = imprimir(p);
	system("pause>null");
}
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