Jump to content
Jeo

[C++] Por que pasa esto?

Recommended Posts

Buenas, pues haciendo este ejercicio de project euler:

 

 

 

1430252631.png

 

 

 

Mi idea principal es: "Vale, voy a comprobar los 2 ejemplos que ponen de los 10 primero numeros naturales y luego simplemente aumentando lo hago con 100.

 

Para el primero hago esto:

#include <iostream>
#include <cmath>
using namespace std;

int main(){
  int sum_squares;


   for(int i = 0;i<11;i++){

     sum_squares += pow(i, 2);

     }
   
  cout << sum_squares<< endl;
}

Y perfecto, me da 385, luego hago otro aparte para el segundo, que viene siendo otro for.

 for(int j = 0; j < 11; j++)
  {
    square_of_sum += j;

    }
square_of_sum = pow(square_of_sum, 2);

Y tambien me da bien, pero si pongo todo en un mismo cpp, me dan valores rarísimos.

 

Mi programa final es el siguiente:

#include <iostream>
#include <cmath>
using namespace std;

int main(){
  int sumas_j;
  int sum_squares;
  int square_of_sum;
  int diference;

   for(int i = 0;i<11;i++){

     sum_squares += pow(i, 2);

     }
    for(int j = 0; j < 11; j++)
  {
    //sumas_j += j;
    square_of_sum += j;

    }
    square_of_sum = pow(square_of_sum, 2);
  cout << sum_squares<< endl;
   cout << square_of_sum << endl;
}

Debería funcionar pero no lo hace, entonces lo que hago es comentar todo el codigo de uno de los ejemplos y entonces si funciona. Y aunque haga esto:

#include <iostream>
#include <cmath>
using namespace std;

int main(){
  int square_of_sum;


    for(int j = 0; j < 11; j++)
  {
    square_of_sum += j;

    }
square_of_sum = pow(square_of_sum, 2);  
cout << square_of_sum << endl;
  cout << sum_square << endl; //Añado esta y cambia todo.

Por solo añadirle otro cout, ya me dan valores que no deberían dar. Sin añadir más nada, solo un cout.

 

Resultado cuando añado un cout:

1430253309.png

 

Por que me sale si solo estoy añadiendo un simple cout, ni siquiera le quité el comentario al otro for... Alguien me ayuda? es rarísimo.

 

No se si se me entiende. Si hace falta, hago un video xD

 

Gracias de antemano.

Share this post


Link to post
Share on other sites
Guest Caes   
Guest Caes

Acostúmbrate a inicializar las variables de tipo numéricas en 0, eso te ayudará a encontrar problemas en tus aplicaciones.

int variable1 = 0;

Share this post


Link to post
Share on other sites

Anda, cierto. Apenas se C++, pero eso de dar valor 0 a las variables no lo sabía. Muchas gracias a los 2 por comentar ^^

#solved.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...