Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Suma kwadratów kolejnych liczb C

Ostatnio zmodyfikowano 2017-11-10 18:32
Autor Wiadomość
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 ?
C/C++
#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;
}
P-166618
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.
P-166619
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?
P-166620
ParseThisCode
» 2017-11-09 18:50:09
Tak to wygląda w C++

C/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;
}
P-166624
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
P-166627
ParseThisCode
» 2017-11-09 19:20:35
Dziwne, bo u mnie działa.

https://imgur.com/gallery/WSojB
P-166628
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.
P-166629
ParseThisCode
» 2017-11-09 19:24:26
Jaki kompilator, jaka wersja kompilatora/c++?
P-166630
« 1 » 2 3 4
  Strona 1 z 4 Następna strona