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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Qué hago mal en el uso de for?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Qué hago mal en el uso de for?  (Leído 2,560 veces)
OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
¿Qué hago mal en el uso de for?
« en: 4 Abril 2013, 18:40 pm »

Me imprime una y otra vez el número 6 y todo el cout  :-\ No sé que estoy haciendo mal, e buscado programas similares pero los pocos que e encontrado no me aclaran nada. A ver si sabéis que estoy haciendo mal.
Un saludo.

Código
  1. /* Escribe un programa que sume todos los múltiplos de 3
  2. comprendidos entre dos números introducidos por el teclado. */
  3.  
  4. #include <iostream>
  5. int numero1 = 0;
  6. int numero2 = 0;
  7. int multiplos = 3;
  8. int multiplos3 = 3;
  9. const int sumaTres = 3;
  10.  
  11.    using std::cout;
  12.    using std::cin;
  13.    using std::endl;
  14.  
  15. int main()
  16. {
  17.  
  18.  
  19.  
  20.    cout << "Escribe el primer numero: " << endl;
  21.    cin >> numero1;
  22.    cout << "Escribe el segundo numero: " << endl;
  23.    cin >> numero2;
  24.  
  25.        for(multiplos3 < numero2; multiplos3 + sumaTres;)
  26. /*Mientras el valor de multiplos3 sea menor que el valor de numero2,
  27. se aumenta 3 a multiplos3. */
  28.          cout <<"Los multiplos de 3 comprendidos entre " << numero1 <<" y "
  29.    << numero2 << " son: " << multiplos3;
  30.  
  31.  
  32.  
  33.    getchar();
  34.    getchar();
  35.    return 0;
  36. }
   


En línea

I like to test things.
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: ¿Qué hago mal en el uso de for?
« Respuesta #1 en: 4 Abril 2013, 18:52 pm »

El FOR es así

Código:
for(;;){

...
}

Citar
for( PARTE1 ; PARTE2 ; PARTE3)

Como ves, las 3 partes son opcionales, pero te quedaría un FOR infinito, como en este caso:
Código:
for(;;){

...
}


Si vas a usar algunas de sus 3 partes, tenés que comprender que la primera es para asignaciones, la segunda es para condiciones y la tercera para incrementaciones.

Esto es lo que escribiste.. usaste la primera y la segunda.
Código:
for(multiplos3 < numero2; multiplos3 + sumaTres;)

Pero fijate si las 3 partes tienen sentido con esa línea





En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: ¿Qué hago mal en el uso de for?
« Respuesta #2 en: 4 Abril 2013, 19:07 pm »

Tienes que leerte un buen libro que te enseñen bien, has usado mal el for.

for(multiplos3 < numero2; multiplos3 + sumaTres;)

es:

for(multiplos3; multiplos3 < numero2; multiplos3 + sumaTres)
porque primero se indica la variable que aumentara en cada vuelta, luego hasta que condicion se ejecutara el for y luego cuanto aumentara esa variable.

Pero de todas formas esta mal lo que estas haciendo, no lo estas pensando bien.

Cuando pides el numero1 y el numero2, luego tienes que hacer un bucle for que ira desde numero1 hasta numero2 sumando los multiplos de 3 que hay entre ellos. Que se calcula de otra forma, porque no puedes simplemente sumarle 3 para que sea multiplo de 3, fijate que si el numero1 es 11 si le sumas 3 sera 14 y no es multiplo de 3. Se tiene que usar el operador de division entera que da como resultado el resto de la division.

int i = numero1;
int suma;

For (i; i = numero2; i++) {  // tendras que ver si incluiras los numero1 y numero2 en la suma si es que son multiplos de 3 o no, tu veras.

if (i % 3) == 0 {suma += i; }  // si el resto de por ejemplo 15/3 es 0, entonces se suma 15 a la variable suma ya que significa que es multiplo.

}
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ¿Qué hago mal en el uso de for?
« Respuesta #3 en: 4 Abril 2013, 23:42 pm »

Creo que sería más lógico averiguar si el numero1 es  o no múltiplo de tres, y si no lo es tomar el valor del correspondiente múltiplo y ya en el for ir de tres en tres, vamos esto:

 
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int numero1,numero2, multiplos3 =0,suma=0;
  7.    cout << "Escribe el primer numero: " << endl;
  8.    cin >> numero1;
  9.    cout << "Escribe el segundo numero: " << endl;
  10.    cin >> numero2;
  11.    if (numero1%3!=0)
  12.        numero1=numero1-numero1%3 +3;
  13.    for(int i=numero1;i <= numero2; i+=3) {
  14.            cout << i << "   ";
  15.            multiplos3++;
  16.            suma+=i;
  17.        }
  18.        cout <<endl<<"Los multiplos de 3 comprendidos entre " << numero1 <<" y "
  19.    << numero2 << " son: " << multiplos3<<endl;
  20.    cout <<endl<<"Y la suma de todoe ellos es " <<suma<<endl;
  21.    return 0;
  22. }
  23.  
  24.  

Saluditos!. ...
En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: ¿Qué hago mal en el uso de for?
« Respuesta #4 en: 5 Abril 2013, 21:48 pm »

Genial leosansan!!!!!
En línea

I like to test things.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
NO SE QUE HAGO MAL NOBATO EN SIMUC PRO
Dudas Generales
masterkeyes 0 2,014 Último mensaje 16 Julio 2016, 09:09 am
por masterkeyes
¿Que hago en mi proyecto de sintesis?
Foro Libre
GreenTick 3 2,119 Último mensaje 20 Septiembre 2016, 03:26 am
por GreenTick
me hago líos con la programación
Foro Libre
Josephmode 1 1,238 Último mensaje 25 Octubre 2018, 04:24 am
por 301
Que hago?
Foro Libre
lvr 3 1,603 Último mensaje 16 Agosto 2019, 13:01 pm
por FreeCellnet
que hago con una ip.
Hacking Wireless
aaroncxs 2 9,658 Último mensaje 13 Abril 2024, 03:14 am
por gmd32
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines