• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z sumowaniem for.

Object Storage Arubacloud
0 głosów
173 wizyt
pytanie zadane 17 stycznia 2016 w C i C++ przez Informatyk# Obywatel (1,060 p.)
edycja 17 stycznia 2016 przez Informatyk#

Witajcie, jako że wiem że mogę na was liczyć bardzo proszę o radę, co tutaj może być źle. Kalkulator źle sumuje i mimo, że pytanie jest podobne to nie potrafię znaleźć błędu.

#include <iostream>

using namespace std;
int oceny[5],suma=0 ;
int main()

{

    for (int i=0; i<6; i++)
    {
            cout << "Ile " << (i+1) <<" ma uczen? ";
            cin>> oceny[i];

            suma=suma+oceny[i];
    }

    cout << "suma ocen ucznia to : "<< suma;
    return 0;
}

EDIT: Dziękuję za wskazanie przyczyny.Potem po rozwiązaniu problemu zauważyłem też, że zdefiniowałem 2 razy int suma i dlatego wyskakiwało mi zero. 

EDIT 2: 

#include <iostream>
#include <cstdlib>

using namespace std;
int oceny[5],srednia;
int suma = 0;

int main()

{


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

            cout << "Ile " << (i+1) <<" ma uczen? ";
            cin>> oceny[i];
            suma+= oceny[i];
            srednia = suma/oceny[i];
    }
    cout << "suma ocen ucznia to : "<< suma;
    cout << "Srednia ocen ucznia to : "<< srednia;


    return 0;
}

W tym zmodyfikowanym kodzie źle mi średnią liczy oraz program się wyłącza po wprowadzeniu wartości 0. Co zrobić?

 

4 odpowiedzi

+2 głosów
odpowiedź 17 stycznia 2016 przez Shelvi96 Obywatel (1,440 p.)
wybrane 17 stycznia 2016 przez Informatyk#
 
Najlepsza
tablica ma 5 komórek a pętla 6 kroków, zapisujesz ostatnia liczbę do nieistniejącej komórki tablicy a następnie odczytujesz nieistniejącą komórkę tablicy
+2 głosów
odpowiedź 17 stycznia 2016 przez Avalon Obywatel (1,130 p.)
for (int i=0; i<6; i++)

masz tablice[5] czyli komórki numerujesz  0 1 2 3 4 a chcesz odczytać jeszcze z 5 (i<6) jest tam losowa wartość i to jest problem, zmień na i<5

 

+2 głosów
odpowiedź 17 stycznia 2016 przez radek024 Szeryf (77,160 p.)
Dajesz o jedną pętlę za duzo, pamiętaj ze indeks pierwszej komórki to 0.
+1 głos
odpowiedź 17 stycznia 2016 przez pa7ryk Użytkownik (980 p.)
Możesz napisać czego oczekujesz od tego programu?
komentarz 17 stycznia 2016 przez Informatyk# Obywatel (1,060 p.)
Chcę żeby sumował liczby wymienione w pętli for.
komentarz 17 stycznia 2016 przez Avalon Obywatel (1,130 p.)

Btw. zamiast  

 suma=suma+oceny[i];

możesz dać:

suma+=oceny[i];

to to samo a jakoś szybciej się piszę :)

 

Podobne pytania

0 głosów
2 odpowiedzi 187 wizyt
0 głosów
1 odpowiedź 91 wizyt
+1 głos
2 odpowiedzi 662 wizyt
pytanie zadane 27 lutego 2021 w JavaScript przez Darth Vader Początkujący (270 p.)

92,584 zapytań

141,434 odpowiedzi

319,670 komentarzy

61,968 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...