| Bercik97 Temat założony przez niniejszego użytkownika | Suma kwadratów kolejnych liczb C » 2017-11-09 18:08:25 Witam, napisałem sobie program żeby obliczał mi sumę kwadratów liczb całkowitych. Wszystko działa PRAWIE dobrze bo jak podaje jakąś mała liczbę np. zaczynam od 0 i suma 5 kolejnych kwadratów liczb, czyli (0*0)+(1*1)+...(5*5) to program pokazuje mi zawsze liczbę o 2 większą niż powinna być, czyli jak podam 5 to pokazuje 57 zamiast 55 albo np podaje 10 to pokazuje 387 zamiast 385. A np jak wpisuje jakąś większą liczbę np 20 i 5 kolejnych liczb czyli (20*20)+(21*21) ... (25*25) to pokazuje mi 3054 a powinno być 3055. Ktoś wie czym to jest spowodowane, co źle zrobiłem ?  #include <stdio.h>#include <stdlib.h>
 #include <math.h>
 
 int main()
 {
 int x, y, z, suma, suma_2;
 
 printf( " -- Program oblicza sume kwadratow X kolejnych liczb zaczynajac od podanej liczby --\n\n" );
 printf( "Podaj liczbe calkowita od ktorej mam zaczac: " );
 scanf( "%d", & x );
 printf( "Ile nastepnych kwadratow liczb dodac: " );
 scanf( "%d", & y );
 suma_2 += pow( x, 2 );
 
 while( y-- > 0 ) {
 suma = ++x;
 suma_2 += pow( suma, 2 );
 }
 printf( "%d", suma_2 );
 getch();
 
 return 0;
 }
 
 | 
|  | 
| latajacaryba | » 2017-11-09 18:14:43 zainicjalizuj zmienne zerami, a przynajmniej suma_2
 PS. wiem, że tak trzeba, bo są w nich śmieci, ale nie mam pojęcia, dlaczego u Ciebie i u mnie jest dwa, mimo, że to jak wspomniałem suma_2 niezainicjalizowana. Może ktoś to wyjaśni.
 | 
|  | 
| Bercik97 Temat założony przez niniejszego użytkownika | » 2017-11-09 18:19:24 Ok, zrobione, teraz liczy mi dla 5 i dla 10, ale jak sprawdzam 20 i 5 kolejnych kwadratów to teraz pokazuje mi 3052 czyli nadal jest źle jak wpisze jakąś dużą liczbę, ktoś wie gdzie jest błąd? | 
|  | 
| ParseThisCode | » 2017-11-09 18:50:09 Tak to wygląda w C++ #include <iostream>#include <cmath>
 
 int main() {
 unsigned int min( 0 ), max( 0 ), sum( 0 );
 
 std::cin >> min >> max;
 
 for( int x( min ); x <= max; ++x ) {
 std::cout << x << "*" << x << "=" << pow( x, 2 ) << "\n";
 sum += pow( x, 2 );
 }
 
 std::cout << std::endl << "Sum= " << sum;
 }
 
 | 
|  | 
| Bercik97 Temat założony przez niniejszego użytkownika | » 2017-11-09 19:12:58 @ParseThisCode wklepałem twój kod w c++ i liczy tak samo jak w moim, screen => https://imgur.com/a/inVbqWiec dalej jest coś źle
 | 
|  | 
| ParseThisCode | » 2017-11-09 19:20:35 Dziwne, bo u mnie działa.
 https://imgur.com/gallery/WSojB
 | 
|  | 
| Bercik97 Temat założony przez niniejszego użytkownika | » 2017-11-09 19:22:30 Hmm, to może mam coś z kompilatorem nie tak, sprawdzałem na kompie a ty widzę że na telefonie czy tam czymś innym niż pc, w takim razie to nie jest wina kodu. | 
|  | 
| ParseThisCode | » 2017-11-09 19:24:26 Jaki kompilator, jaka wersja kompilatora/c++? | 
|  | 
| « 1 »  2 3 4 |