Autor
|
Tema: Calcular Indice Estudiantil (Leído 3,640 veces)
|
ElChulon
Desconectado
Mensajes: 8
|
Programa "sencillo" que me esta dando problemas al imprimir el indice. Pido la cantidad de materias, pido la calificación obtenida de la materia y después los créditos educativos de ese materia. Los voy sumando cada uno en su respectivo arreglo, hago una división, lo guardo en una variable tipo float, imprimo. No me da el índice correcto, casi siempre me da 0 o un numero "entero" sin números a la derecha del 0. #include <stdio.h> int main(){ int m, i, n, j, cant[i], calif[j], sumacant=0, sumacalif=0; float indice=0; printf("Bienvenido a Indice Vale\n"); printf("Datos a considerar: NOTA>> 4=A, 3=B, 2=C, D=1, 0=F\n"); printf("Ingrese la cantidad de materias que esta tomando en este cuatrimestre: "); scanf("%d", &m ); printf("\t \t \tRECUERDE LOS DATOS A CONSIDERAR DEL INICIO\n\n"); for (n=0;n<m;n++){ printf("Ingrese la calificacion obtenida (A,B,C,D,F) de la materia %d: ", n +1); scanf("%d", &calif [j ]); printf ("Ingrese la cantidad de creditos de la materia: ", n +1); scanf("%d", &cant [i ]); sumacalif=+calif[j]; sumacant=+cant[i]; } indice=sumacalif/sumacant; printf("Su indice cuatrimestral es: %f", indice ); return 0; }
|
|
|
En línea
|
|
|
|
Gunhack
Desconectado
Mensajes: 42
|
No estás inicializando correctamente tus arreglos y algunas variables están de más... #include <stdio.h> int main(){ int m, i, n, j, cant[i], calif[j], sumacant=0, sumacalif=0; // la variable "i" o "j" tienen basura, entonces esto genera arreglos indefinidos.. float indice=0; printf("Bienvenido a Indice Vale\n"); printf("Datos a considerar: NOTA>> 4=A, 3=B, 2=C, D=1, 0=F\n"); printf("\n"); printf("Ingrese la cantidad de materias que esta tomando en este cuatrimestre: "); scanf("%d", &m); printf("\n"); printf("\n"); printf("\t \t \tRECUERDE LOS DATOS A CONSIDERAR DEL INICIO\n\n"); for (n=0;n<m;n++){ //como no inicializas i o j practicamente accedes a nada dentro de los arreglos... printf("Ingrese la calificacion obtenida (A,B,C,D,F) de la materia %d: ", n+1); scanf("%d", &calif[j]); printf ("Ingrese la cantidad de creditos de la materia: ", n+1); scanf("%d", &cant[i]); sumacalif=+calif[j]; sumacant=+cant[i]; } indice=sumacalif/sumacant; printf("Su indice cuatrimestral es: %f", indice); return 0; }
Quedaría así... Aunque no entiendo que quieres hacer o que resultado debe de dar ojalá me apoyes con un ejemplo... xD #include <stdio.h> int main(){ int sumacant=0, sumacalif=0, m; float indice=0; printf("Bienvenido a Indice Vale\n"); printf("Datos a considerar: NOTA>> 4=A, 3=B, 2=C, D=1, 0=F\n"); printf("\n"); printf("Ingrese la cantidad de materias que esta tomando en este cuatrimestre: "); scanf("%d", &m); int cant[m], calif[m]; printf("\n"); printf("\n"); printf("\t \t \tRECUERDE LOS DATOS A CONSIDERAR DEL INICIO\n\n"); for (int i = 0; i < m; i++){ printf("Ingrese la calificacion obtenida (A,B,C,D,F) de la materia %d: ", i+1); scanf("%d", &calif[i]); printf ("Ingrese la cantidad de creditos de la materia: ", i+1); scanf("%d", &cant[i]); sumacalif=+calif[i]; sumacant=+cant[i]; } indice=sumacalif/sumacant; printf("Su indice cuatrimestral es: %f", indice); return 0; }
|
|
|
En línea
|
|
|
|
ElChulon
Desconectado
Mensajes: 8
|
Sigue dándome un valor que no es el resultado que quiero lograr el índice, el cual sale de la suma de todas las calificaciones obtenidas digitadas dividido entre la suma de todos los créditos digitados. Por ej, curse dos materias en este cuatrimestre, cada materia tenia 5 créditos, en cada materia saque una A (4) sumo los créditos (10) y sumo la calificación (8) y los divido, 10/8= 1.25 la variable es tipo float pero me da 1.00 creo que me esta redondeando o algo así gracias por simplificarme el programa!
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Las operaciones entre enteros da resultado entero. Convierte uno de los operandos en real, mediante un cast, multiplicándole 1.0 o cambiando su tipo de int a float y la división te devolverá un real.
|
|
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Y es por eso que comenta MAFUS que es un peligro andar declarando como unsigned a lo loco...... unsigned int a,b; a = 4; b= 8; std::cout << (a-b); // podria sorprenderte
|
|
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Python]Calcular indice de masa corporal y decir el estado
Scripting
|
word93
|
1
|
11,934
|
28 Agosto 2010, 03:10 am
por Karcrack
|
|
|
Decisión estudiantil
Dudas Generales
|
bl3k8
|
3
|
4,566
|
15 Septiembre 2011, 22:22 pm
por Alien-Z
|
|
|
Opiniones sobre que hacer con mi futuro estudiantil
Programación General
|
chapilla
|
1
|
2,353
|
31 Octubre 2013, 19:10 pm
por Mitsu
|
|
|
Duda estudiantil
« 1 2 »
Foro Libre
|
xv0
|
17
|
8,656
|
25 Septiembre 2014, 06:54 am
por Randomize
|
|
|
[ AYUDA ] Calcular el indice acumulado de un estudiante en .C
Programación C/C++
|
NelsonR
|
3
|
7,832
|
28 Julio 2021, 21:51 pm
por K-YreX
|
|