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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Centinela 9999
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Centinela 9999  (Leído 2,213 veces)
iAmChapin_

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Centinela 9999
« en: 28 Agosto 2015, 06:39 am »

Hola chicos, vengo a molestar de nuevo a ver si alguien me echa la mano con este código. A ver, el problema está en lo de las vueltas del ciclo, hay una parte en que ya no me hace el proceso y no tengo ni idea del porque. Les muestro el código:

Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int num;
  5. int numNuevo;
  6. int auxiliar = 0;           //VARIABLES DE TIPO ENTERO
  7. int promedio;
  8. int numAgregado;
  9. int numResta;
  10.  
  11. void main(){
  12.  
  13. cout << "Programado por ;Curso de Algoritmos;Tarea 6" << endl;
  14.   cout << "Carne 1190" << endl << endl;
  15.   cout << "Programa que calcula promedio de enteros impares" << endl;
  16.   cout << "Ingrese 9999 si desea terminar -- Ingrese numeros para el promedio" << endl;
  17.   cin >> num;
  18.   auxiliar++;
  19.  
  20.   //DETERMINAMOS SI EL NUMERO INGRESADO ES 9999
  21.   while(num != 9999){
  22.  
  23.   cout << "Ingrese otro numero: " << endl;
  24.   cin >> numNuevo;
  25.   auxiliar++;
  26.   if (numNuevo == 9999){
  27.   auxiliar--;
  28.   //CALCULAMOS PROMEDIO
  29.   promedio = numAgregado/auxiliar;
  30.   //IMPRIMIMOS RESULTADOS
  31.      cout << "El promedio es: " << promedio << endl;
  32.      break;
  33.      }
  34.   else{
  35.   numAgregado = num+numNuevo;
  36.   }
  37.  
  38.   }
  39.  
  40.   getch();
  41.  
  42. }

Aclarando: Uso Borland, se que hay algunas funciones que no debo de utilizar o estan desfasadas pero son simples ejercicios y solo tengo que presentar el código nada más.

Donde esta el problema? Se puede decir que en la línea 27. Cuando ingreso 1 numero en la 17 aumenta 1 a la variable auxiliar en la linea 18, bien, ahora en el while, si ingreso otro número, automaticamente agrega 1 otra vez a la variable en la linea 25 siempre y cuando no sea 9999. Despues de eso, ingreso 9999 y vuelve a sumar 1 a auxiliar, pero le resto 1 despues dentro del if en la linea 27 para que la division sea exacta (si ingreso 2 numeros, se debe dividir en 2, si ingreso 3, se debe dividir en 3, por eso la variable), lo probe y funcionó con 2 numeros, pero de 3 en adelante, es como si la línea 27 no hiciera efecto porque divide mal, no hace su función. Podrían decirme el porqué? Perdon si no me explico bien, me avisan y vuelvo a explicar, saludos a todos!

Mod: Datos bloqueados para proteger la privacidad


« Última modificación: 1 Septiembre 2015, 00:50 am por iAmChapin_ » En línea

Mientras

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Centinela 9999
« Respuesta #1 en: 28 Agosto 2015, 08:47 am »

Solo te funciona con 2 numeros por que está cogiendo el "primer" y "ultimo" dividido entre la cantidad de números.

Si ingresas n1 n2 n3 n4, te va a dar : (n1+n4)/4.

No hay necesidad de usar otra variable para ingresar el nuevo número.

El problema está en la línea 35.



En línea

iAmChapin_

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Centinela 9999
« Respuesta #2 en: 28 Agosto 2015, 17:08 pm »

Solo te funciona con 2 numeros por que está cogiendo el "primer" y "ultimo" dividido entre la cantidad de números.

Si ingresas n1 n2 n3 n4, te va a dar : (n1+n4)/4.

No hay necesidad de usar otra variable para ingresar el nuevo número.

El problema está en la línea 35.



Wow, por algo tan simple el programa falla, tenías mucha razón amigo, solucionado!! Muchísimas gracias como siempre!!  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines