elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  AYUDA! problema con programas usando Estructuras de control selectivas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA! problema con programas usando Estructuras de control selectivas  (Leído 2,388 veces)
Ingrid1997

Desconectado Desconectado

Mensajes: 11


Ver Perfil
AYUDA! problema con programas usando Estructuras de control selectivas
« en: 11 Octubre 2015, 04:39 am »

Hola buenas noches, pues realice este codigo, me deja ingresar nombre y calificaciones pero se cierra despues y no me da ningun resultado, la verdad no se que hacer, les agradeceria mucho me ayudaran, mil gracias por leer :D Estoy trabajando con C++ y se supone debo usar Estructuras de control Selectivas

16.   Dado el nombre y calificaciones individuales de un alumno en laboratorio, examen trimestral y examen final calcule la calificación final con ponderaciones de 20%, 30% y 50% respectivamente. Mostrar su nombre, las calificaciones individuales, la calificación final y además clasificar la calificación de acuerdo a la siguiente tabla:
Calificación   Clasificación
80-100   1
70-79   2
60-69   3
50-59   4
Menos de 50      5.
Código
  1. #include <stdio.h>
  2.  
  3. int main () {
  4.  
  5. char cNombre;
  6. int eLaboratorio, eExamentrimestral, eExamenfinal, eCalificacionfinal;
  7.  
  8. system ("cls");
  9. printf ("Este programa calculará la calificación final de un alumno tomando en cuenta el 20 porciento de Laboratorio, 30 porciento del examen trimestral y 50 porciento del examen final y la calificación final será clasificada en un rango del 1 al 5 correspondiendo asi al 1 una calificación del 80 al 100 porciento, 2 del 70 al 79 porciento, 3 del 60 al 69 porciento, 4 del 50 al 59 porciento y 5 a menos del 50 porcient");
  10.  
  11. printf("\nIngrese el nombre del alumno:");
  12. scanf("%s", &cNombre);
  13. printf("\nIngrese la calificación del Laboratorio:");
  14. scanf("%d", &eLaboratorio);
  15. printf("\nIngrese la calificación del Examen Trimestral:");
  16. scanf("%d", &eExamentrimestral);
  17. printf("\nIngrese la calificación del Examen Final:");
  18. scanf("%d", &eExamenfinal);
  19.  
  20. eCalificacionfinal = (eLaboratorio * 2) + (eExamentrimestral * 3) + (eExamenfinal * 5);
  21.  
  22.  
  23. if (eCalificacionfinal<50){
  24. printf("Clasificación 5");
  25. }
  26.    if (eCalificacionfinal=50 || eCalificacionfinal<=59){
  27.    printf("Clasificación 4");
  28. }
  29. if (eCalificacionfinal=60 || eCalificacionfinal<=69){
  30.    printf("Clasificación 3");
  31. }
  32.    if (eCalificacionfinal=70 || eCalificacionfinal<=79){
  33.    printf("Clasificación 2");
  34. }
  35. if (eCalificacionfinal=80 || eCalificacionfinal<=100){
  36.    printf("Clasificación 1");
  37. }
  38.  
  39. printf("\nEl alumno(a) %s tiene %d en la calificación del laboratorio, %d en la calificación del examen trimestral y %d de calificación en el examen final, obteniendo así un promedio final de %d", cNombre, eLaboratorio, eExamentrimestral, eExamenfinal, eCalificacionfinal);
  40. fflush(stdin);
  41. getchar ();
  42. return 0;
  43. }

En este me pide :
19.   Lea un caracter y escriba si está antes o después de “m” en orden alfabético.

e hice este codigo: el problema esque escribo a por ejemplo y me dice que esta antes y despues, osea me imprime las dos acciones de las condiciones

Código
  1. #include <stdio.h>
  2.  
  3. int main (){
  4. char cLetra;
  5.  
  6. system ("cls");
  7.  
  8. printf("Ingrese un caracter del alfabeto:");
  9. scanf("%c", &cLetra);
  10.  
  11. if (cLetra = 'a' || 'b' || 'c' || 'd' || 'e' || 'f' || 'g' || 'h' || 'i' || 'j' || 'k' || 'l') {
  12. printf("El carácter alfabético ingresado esta antes de 'm'");
  13. }
  14. if (cLetra = 'n' || 'ñ' || 'o' || 'p' || 'q' || 'r' || 's' || 't' || 'u' || 'v' || 'w' || 'x' || 'y' || 'z') {
  15. printf("El carácter alfabético ingresado esta despues de 'm'");
  16. }
  17.  
  18. fflush(stdin);
  19. getchar ();
  20. return 0;
  21. }


« Última modificación: 11 Octubre 2015, 05:12 am por Ingrid1997 » En línea

Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: AYUDA! problema con programas usando Estructuras de control selectivas
« Respuesta #1 en: 11 Octubre 2015, 10:57 am »

Respecto al primer código, hay varios errores:
1º Línea 5 - La variable 'cNombre', en el código, la usas cómo un string, pero aquí la declaras como un carácter. Solución, sustituir la línea por 'char cNombre[256];'
2º en las línea 12, tienes que quitar el '&', ya que la variable 'cNombre' ya es un puntero.
3º En las líneas 27, 30, 33 y 36 estás igualando, tienes que cambiar el operador '=' por el de igualación '=='

Otra cosa, aunque no sea un error de código, al calcular el promedio no divides entre la suma de todo. Sustituye la línea 21 por:
Código
  1. eCalificacionfinal = ((eLaboratorio * 2) + (eExamentrimestral * 3) + (eExamenfinal * 5))/10;


« Última modificación: 11 Octubre 2015, 10:59 am por Seyro97 » En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: AYUDA! problema con programas usando Estructuras de control selectivas
« Respuesta #2 en: 11 Octubre 2015, 11:07 am »

Respecto al segundo código, hay muchas cosas mal. Los caracteres están codificados en un código. Es decir, a cada carácter le corresponde un número. La codificación normalmente usada es la ASCII extendida o la UTF-8(o 16).

En esta línea
Código
  1. cLetra = 'a' || 'b' || 'c' || 'd' || 'e' || 'f' || 'g' || 'h' || 'i' || 'j' || 'k' || 'l'
Estás igualando a 'cLetra' a, no estás comparando. Además, lo que se pone entre el operador || es una comparación. Como los caracteres equivalen a un número distinto de cero, entonces esta es la equivalencia:
Código
  1. true || true ||  true ||  true ||  true ||  true ||  true ||  true ||  true ||  true ||  true
Como ves, si o si, el if se va a cumplir, ya que el operador || dice que si alguno de las comparaciones vale true, todo vale true, es decir, el código de antes corresponde al siguiente:
Código
  1. if(true) {...}
Lo que tendrías que hacer es lo siguiente:
Código
  1. if(cLetra < 'm') {/* El código va aquí */}
Lo mismo pasa con el otro if
En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
estructuras selectivas
.NET (C#, VB.NET, ASP)
leliCabello 3 7,484 Último mensaje 29 Marzo 2010, 20:26 pm
por leliCabello
Pilas C++ usando Estructuras (STRUCT) « 1 2 »
Programación C/C++
charmedever 13 16,060 Último mensaje 21 Noviembre 2011, 21:11 pm
por x64core
C++ Problema propuesto usando estructuras repetitivas
Programación C/C++
Franz1628 3 3,182 Último mensaje 27 Enero 2012, 23:45 pm
por theluigy13etv
No funcionan las estructuras de control.
Programación C/C++
FKT 2 1,888 Último mensaje 4 Agosto 2015, 17:22 pm
por FKT
ayuda en programas de estructuras de datos en c
Programación C/C++
KAPPA47 2 1,808 Último mensaje 27 Octubre 2016, 02:28 am
por KAPPA47
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines