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/inVbq Wiec 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 |